C语言中如何输入长字符串
时间: 2024-04-09 19:27:47 浏览: 81
在C语言中,可以使用`fgets()`函数来输入长字符串。`fgets()`函数的原型如下:
```c
char* fgets(char* str, int n, FILE* stream);
```
其中,`str`是指向字符数组(即字符串)的指针,`n`是要读取的最大字符数(包括空字符'\0'),`stream`是要从中读取的文件流。如果你想从标准输入(键盘)中读取字符串,可以将`stream`参数设置为`stdin`。
以下是一个示例代码,演示如何使用`fgets()`函数输入长字符串:
```c
#include <stdio.h>
int main() {
char str[100]; // 声明一个足够长的字符数组来存储字符串
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入中读取字符串
printf("你输入的字符串是:%s", str);
return 0;
}
```
上述代码中,我们声明了一个大小为100的字符数组`str`来存储字符串。然后使用`fgets()`函数从标准输入中读取字符串,并将其存储到`str`中。最后,我们将输入的字符串打印出来。
请注意,`fgets()`函数会将输入的换行符(`\n`)也一同读入并存储在字符串中。如果你不希望包含换行符,可以使用`strlen()`函数将其替换为空字符(`\0`),如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 替换换行符为空字符
str[strcspn(str, "\n")] = '\0';
printf("你输入的字符串是:%s", str);
return 0;
}
```
使用`strcspn()`函数可以找到字符串中第一个换行符的位置,并将其替换为空字符。这样,最终打印出来的字符串就不会包含换行符了。
阅读全文