c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母: 如何用c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,...
//先看这这代码, 这段代码的可读性不高...... 注释等会.
#include
int main(void)
{
char first_initial, ch; //这代码写得不好, 打眼一看以为是错的.....
printf("Enter a first and last name: ");
scanf(" %c", &first_initial); //这个是为了保存名字的第一个字符, 这样剩下的就只剩下名的后面部分和
while (getchar() != ' '); //这样它把名字给输入完了, 因为姓和名中间有空格
while ((ch = getchar()) != '
') //输入姓.
if (ch != ' ') //这句感觉没啥用, 因为姓不可能会有空格在里面.
putchar(ch);
printf(", %c.
", first_initial); //然后把刚刚保存到的名字的首字输出.
return 0;
// 我咋感觉这代码错了.....因为一个getchar后面紧跟一个putchar, 就相当于是, 你在控制台里输入一个1, 结果出来了俩1.
}
while
(getchar()
!=
'
')//获得名字
{
ch_1=getchar();
}
这里名字后续字符不需要
在while判断里面有getchar就可以了,不需要再循环体里面重复调用
直接
while (getchar() != ' ')//获得名字
{
}就可以了。
while (getchar() != ' ')//获得名字
{
ch_1=getchar();
}
这里名字后续字符不需要 在while判断里面有getchar就可以了,不需要再循环体里面重复调用
直接
while (getchar() != ' ')//获得名字
{
}
就可以了。
//先看这这代码, 这段代码的可读性不高...... 注释等会.
#include <stdio.h>
int main(void)
{
char first_initial, ch; //这代码写得不好, 打眼一看以为是错的.....
printf("Enter a first and last name: ");
scanf(" %c", &first_initial); //这个是为了保存名字的第一个字符, 这样剩下的就只剩下名的后面部分和
while (getchar() != ' '); //这样它把名字给输入完了, 因为姓和名中间有空格
while ((ch = getchar()) != '\n') //输入姓.
if (ch != ' ') //这句感觉没啥用, 因为姓不可能会有空格在里面.
putchar(ch);
printf(", %c.\n", first_initial); //然后把刚刚保存到的名字的首字输出.
return 0;
// 我咋感觉这代码错了.....因为一个getchar后面紧跟一个putchar, 就相当于是, 你在控制台里输入一个1, 结果出来了俩1.
}
char first_name;
char ch_1;//名字
char ch_2;//姓氏
printf("Enter a first and last name:");
first_name=getchar();//获得名字的首字母
while (getchar() != ' ')//获得名字
{
ch_1=getchar();
}
while ((ch_2 = getchar()) != '
')//获得姓氏
{
printf("%c",ch_2);//输出姓氏
}
printf(",");
putchar(first_name);//名字的首字母
printf(".");
改了下你的,应该是这样了
可以简单地写。
#include <stdio.h>
int main(void)
{
char first_name[40],last_name[40];
printf("Enter a first and last name:");
scanf("%s %s", first_name, last_name); // 输入名 姓
printf("%s, %c\n", last_name, first_name[0]); //输出 姓 逗号 和 名的首字母
return 0;
}
//注意if和while的分号;空循环
#include <stdio.h>
void main()
{
char ch,bh=ch=getchar();
while((ch=getchar())!=' '); //get掉多余的单个字符
while((ch=getchar())!='
') //开始从空格号读取并输入姓,遇回车结束循环
if(ch!=' ')
putchar(ch);
printf(",%c.
",bh);
}
《c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗...》
答:while (getchar() != ' ')//获得名字{ }就可以了。