用 C 语言读取字符串数据
读取字符串数据是 C 语言中一个常见任务。有几种方法可以实现此目的:
1. scanf()
scanf()函数可以从标准输入读取格式化的数据。要读取字符串,使用
%s格式说明符:
立即学习“C语言免费学习笔记(深入)”;
<code class="c">char str[100];
scanf("%s", str);</code>2. fgets()
fgets()函数从文件中读取一行数据,包括换行符。它将数据存储在指定的字符串缓冲区中:
<code class="c">char str[100]; fgets(str, 100, stdin);</code>
3. gets()
gets()函数从标准输入读取一行数据,直到遇到换行符。但是,它不安全,因为输入没有边界检查,可能导致缓冲区溢出:
<code class="c">char str[100]; gets(str);</code>
4. getchar()
getchar()函数每次读取一个字符。要读取字符串,需要循环读取字符,直到遇到换行符或其他终止字符:
<code class="c">char str[100];
int i = 0;
char ch = getchar();
while (ch != '\n') {
str[i++] = ch;
ch = getchar();
}
str[i] = '\0'; // 终止字符串</code>5. getline()
getline()函数读取一行数据,包括换行符(从 C11 开始)。它返回读入行的长度,或者在遇到 EOF 时返回 -1:
<code class="c">char *str = NULL; size_t len = 0; getline(&str, &len, stdin);</code>
选择使用哪种方法取决于特定需求,例如输入大小、是否需要边界检查和是否需要排除换行符。
