c中如何为一个字符串里的每个字符单个单个的赋值

例如下面代码
#include"stdio.h"

int main()
{
char male[100]; //先定义一个字符串数组male
int m; //将要输入的字符的个数
scanf("%d",&m);
for(int i=0;i {
scanf("%c",&male[i]); //这里用的是%c
}
printf("%s",male);
return 0;
}
将这段代码在编译器上运行,只有会发现出错
就没办法把单个字符输入了

有以下下两种改法
第一种

#include"stdio.h"

int main()
{
char male[100];
int m,round;
scanf("%d",&m);
for(int i=0;i {
scanf("%s",&male[i]); //此处将上面的%c改为了%s
}

printf("%s",male);
return 0;
}

第二种
#include"stdio.h"

int main()
{
char male[100];
int m,round;
scanf("%d",&m);
for(int i=0;i {
getchar(); //此处加了getchar()来吃掉回车或空格,因为前面输入后会留下空格和回车就会被装进male[i]里,所以会造成程序无法成功运行
scanf("%c",&male[i]);

}
printf("%s",male);
return 0;
}

你可能感兴趣的:(c中如何为一个字符串里的每个字符单个单个的赋值)