0
我的问题是:输入名称并打印出的顺序C编程:字符串
例:
结果马丁·路德·金:国王,马丁 - 路德
但是,当我输入名字运行此代码打印出来:King,LutherMartin-Luther。你能帮我看看这个错误吗?
#include<stdio.h>
#include<conio.h>
#include <string.h>
int main()
{
char name[100];
int i;
printf("input full name: "); gets(name);
char * c =&name[strlen(name)-1];
while (*(c)!=' ')
c--;
printf("%s,",c);
*c= '\0';
char *d=&name;
while (*(d)!=' ')
d++;
printf("%s",d);
*d='-';
printf("%s",name);
getch();
return 0;
}
您的第一个printf打印“King”,第二个printf打印“Luther”。之后,您不会将'* d'设置为NULL,您将其设置为'''''。此时,名字变成了“Martin-Luther \ 0King \ 0”'。所以最后一个printf打印出“Martin-Luther”。因此,如果将“X Y Z”转换为“Z,X-Y”,则不需要第二个printf。 – holgac
缩进和大括号发生了什么? –
头文件conio.h不可移植。建议删除该头文件并用getchar替换getch() – user3629249