我是C编程新手:D。
这是C编程中的编程项目7.1—一种现代的方法。例如,输入的名字和姓氏是Lloyd Fosdick,预期的结果应该是Fosdick,L。我尝试计算名字中的字符数(在本例中是5)。然后,当i>名字的长度时,使用putchar()开始打印,如下面的代码所示。
#include <stdio.h>
int main(void)
{
char ch, first_ini;
int len1 = 0, i = 0;
printf("Enter a first and last name: ");
ch = getchar();
first_ini = ch;
printf("The name is: ");
while (ch != ' '){
len1++;
ch = getchar();
}
while (ch != '\n')
{
i++;
if (i <= len1) {
ch = getchar();
}
else {
putchar(ch);
ch = getchar();
}
}
printf(", %c", first_ini);
return 0;
}
我得到的结果是ick,L.而不是Fosdick,L
最佳答案
您应该尝试对代码进行以下更改。
#include <stdio.h>
int main(void)
{
char ch, first_ini;
int len1 = 0, i = 0;
printf("Enter a first and last name: ");
ch = getchar();
first_ini = ch;
printf("The name is: ");
while (ch != ' '){
len1++;
ch = getchar();
}
while (ch != '\n')
{
ch = getchar();// get the characters of second word
if(ch != '\n')
putchar(ch);// print the characters of second word but avoid newline
}
printf(", %c", first_ini);
return 0;
}
代码的问题是,只有当第二个单词的长度大于第一个单词时,它才开始打印第二个单词的字符。