c语言 单词倒序输出

来源:百度知道 编辑:UC知道 时间:2024/09/22 10:06:19
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char a[],char b[])
{int i,j;
for(i=strlen(a)-1;i>=0;i--)
if((i==0||!isalpha(a[i-1]))&&isalpha(a[i]))
{strcat(b,&a[i]);
//strcat(b,' '); 这么用可以么?
a[i-1]=0;
}
}
void main(){
char a[]="i am you";
char b[10];
int i;
for(i=0;i<10;i++)
b[i]=0;
puts(a);
fun(a,b);
puts(b);
}

程序如上 输出结果 单词间没有空格 请问怎么才能加上空格呢 谢谢

#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char a[],char b[])
{int i;
for(i=strlen(a)-1;i>=0;i--)
if((i==0||!isalpha(a[i-1]))&&isalpha(a[i]))
{strcat(b,&a[i]);
strcat(b," ");
if(i)
a[i-1]=0;
}
}
void main(){
char a[]="i am you"; (这里的单词可以改为需要的)
char b[10];
int i;
for(i=0;i<10;i++)
b[i]=0;
puts(a);
fun(a,b);
puts(b);
}

改好了

#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char a[],char b[])
{int i; // j多写了
for(i=strlen(a)-1;i>=0;i--)
if((i==0||!isalpha(a[i-1]))&&isalpha(a[i]))
{strcat(b,&a[i]);
strcat(b," "); // 这样写即可
if(i) // i == 0时不能执行下步操作; 没有这句在vc2005等严谨的ide中调试时会报错
a[i-1]=0;
}
}
void main(){
char a[]="i am you";
char b[10];