在C语言中,输入字符串可以通过多种方式实现。最常用的方法包括使用gets()、scanf()和getchar()函数。
使用gets()
gets()函数从标准输入读取一行文本,直到遇到换行符为止,并将其存储在字符数组中。这个函数定义在<stdio.h>头文件中。但需要注意的是,由于gets()可能会导致缓冲区溢出,它在C11标准中已被废弃。
#include <stdio.h>
int main() {
char name[50];
printf("请输入您的名字:");
gets(name);
printf("您输入的名字是:%s\n", name);
return 0;}
使用scanf()
scanf()函数可以读取格式化的输入,包括字符串。但它在遇到空格时会停止读取,因此不适合用来输入包含空格的字符串。
#include <stdio.h>
int main() {
char str[256];
scanf("%s", str);
printf("%s\n", str);
return 0;}
使用getchar()
通过循环使用getchar()函数,可以逐个字符地读取并存储整行文本,直到遇到换行符为止1。
//输入字符串
#include <stdio.h>int main(void) {
int i = 0;
char ch;
char str[256] = { 0 };
while ((ch = getchar()) != '\n') {
str[i] = ch;
i++;
}
str[i] = '\0';
printf("%s", str);
return 0;
}
注意:由于gets()存在安全风险,建议使用更安全的fgets()函数来代替。此外,在使用scanf()后,如果需要再次读取输入,可能需要使用getchar()来消耗缓冲区中残留的换行符。