#include <stdio.h>
#include <ctype.h> /* for access to the toupper function */
void reverse_name(char *name);
int main(void)
{
char input[100];
printf("Enter a first and last name: ");
gets(input);
reverse_name(input);
return 0;
}
void reverse_name(char *name){
char *first = name;
char *see;
see = name;
while(*see != ' '){
}
while(*see != '\n'){
putchar(*see);
}
printf(", %c",*first);
}
我希望这种情况发生:输入名字和姓氏:Lloyd Fosdick
输出如下:Fosdick,L。
但是在输入名字和劳埃德·福斯迪克后,该计划没有给出任何答案,也没有任何反应?代码怎么了?
答案 0 :(得分:2)
在两个while循环中既不增加see
也不检查0
终结符:
while(*see && *see != ' '){
see++;
}
while(*see && *see != '\n'){
putchar(*see);
see++;
}
gets()
已从C11中删除,即使您遵循较旧的标准,也不应使用它。请改用fgets()
。
这绝不是一个完整的解决方案。你必须问问自己:
您需要考虑所有这些情况并在代码中处理它们。
答案 1 :(得分:0)
你有一个无限循环
while(*see != ' '){}
您需要递增指针位置。