c语言,逆序输出一句话中的单词入,I am a student输出student a am

问题描述:

c语言,逆序输出一句话中的单词入,I am a student输出student a am
我写的代码如下,没错误,但编译器不通过
#include "stdafx.h"
#include "string.h"
char *fun(char *array)
{
char *str=NULL;
int n=strlen(array);
for(int i=n-1;i>=0;i--)
{
int temp=i+1;
if(i==0)
{
while(array[i]!=' ')
{
*str++=array[i++];
}
}
if(array[i]==' ')
{
while((array[temp]!='\0')||(array[temp]!=' '))
{
*str++=array[temp++];
}
}
}
return str;
}
void main()
{
char a[]="I am a student";
printf("%s ",fun(a));
}
1个回答 分类:综合 2014-10-01

问题解答:

我来补答
# include <stdio.h>
# include <string.h>

void fun(char* a,char* b)
{
\x09int i,j,k=0;
\x09for(i=strlen(a)-1;i>=0;i--)
\x09{
\x09\x09if(a[i]==' ')
\x09\x09{
\x09\x09\x09for(j=i+1;a[j]&&a[j]!=' ';j++)
\x09\x09\x09{
\x09\x09\x09\x09b[k++] = a[j];
\x09\x09\x09}
\x09\x09\x09b[k++] = ' ';
\x09\x09}
\x09}
\x09for(i=0;a[i]!=' ';i++)
\x09\x09b[k++] = a[i];
\x09b[k] = '\0';
}
int main(void)
{
\x09char a[20]="i am a stdudent",b[20];
\x09fun(a,b);
\x09printf("%s",b);
}
再问: 11行 a[j]&&a[j]!=' ' 这句什么意思?
再答: 如果a[j]不是'\0' 即字符型数组结束符 且 a[j] 不为空格
再问: 原来可以省略啊 学习了
 
 
展开全文阅读
剩余:2000
下一页:fx的解析式