C语言逆序输出单词问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 17:07:20
#include <stdio.h>
#include <string.h>
main()
{ char a[100],b[100]="",c[100];
int i,k=0;
gets(a);
i=strlen(a);
for(i=i-1;i>=0;i--)
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
k++;
else
{a[i]=' ';
strcat(b,a+i);
strcpy(c,a+i-1,k);
strcat(b,c);
c[0]='\0';
k=0;}
if(i==0)
{strcpy(c,a+i,k);
strcpy(b,c);}
puts(b);
}

帮忙看下有什么问题 编译通过 结果不对

我要求的逆序要求 列如输入 “I am a boy” 结果要输出“boy a am I”
如果遇到非字母则变为空格输出
我的程序在TC上不能编译 TC的string库函数里面的strcpy不认参数 所以我的程序要在VC上能通过编译

#include <stdio.h>
#include <string.h>
main()
{
char a[100],b[100]="",c[100];
int i,k=0;
a[0]=' ';
gets(a+1);
i=strlen(a);
for(i=i-1;i>=0;i--)
if(a[i]==' ') {
strcat(b,a+i);
a[i]='\0';
}
puts(b+1);
}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
    char *p;
    char c[] = " ";
    char s[1024],*t,z[1024];
    int flag = 1;
     while(gets(s)){
        if(s[0] == '#'){
 &nb