C语言中如何向字符数组输入一句话
时间: 2024-10-17 21:13:21 浏览: 34
在C语言中,如果你想从用户那里获取一句字符数组(字符串),可以使用`fgets()`函数结合循环来实现。`fgets()`函数允许你读取一行文本,包括空格和换行符,并将其存储在一个字符数组中。
以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LINE_LENGTH 100 // 设定最大字符数,如超过将截断
int main() {
char sentence[MAX_LINE_LENGTH]; // 定义字符数组
printf("请输入一句话: ");
// 使用 fgets 函数读取一行输入并去掉末尾的换行符 '\n'
if (fgets(sentence, MAX_LINE_LENGTH, stdin) != NULL) {
sentence[strlen(sentence)-1] = '\0'; // 取消最后一字符的'\n'
} else {
printf("读取失败!\n");
return 1;
}
printf("你输入的是: %s\n", sentence); // 输出用户输入的句子
return 0;
}
```
在这个例子中,程序会提示用户输入,然后把输入的内容存储到`sentence`数组中。记得检查`fgets()`返回值,确认是否成功读取了数据。
相关问题
C语言字符串输入一句话
在C语言中,可以使用`fgets`函数来接收用户输入的一句话(包含空格的字符串)。下面是一个示例代码:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入一句话:");
fgets(str, MAX_LEN, stdin);
printf("您输入的一句话是:%s\n", str);
return 0;
}
```
在上述代码中,我们定义了一个长度为`MAX_LEN`的字符数组`str`来存储用户输入的一句话。使用`printf`函数输出提示信息,然后使用`fgets`函数接收用户输入的一句话,并将其存储到`str`中。最后,使用`printf`函数输出用户输入的一句话。
需要注意的是,`fgets`函数会将用户输入的整行文本(包括换行符)存储到字符数组中,因此需要确保字符数组足够大以容纳整行文本。
如果你有任何进一步的问题,请随时提问!
定义一个二维字符数组s[4][20],输入四句话保存起来,并统计每句话中的单词个数 用c语言写
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[4][20]; // 定义二维字符数组
int word_count[4] = {0}; // 统计每句话中的单词个数,初始化为0
// 输入四句话并保存
for (int i = 0; i < 4; i++)
{
printf("请输入第%d句话:", i+1);
fgets(s[i], 20, stdin);
// 去掉每句话结尾的换行符
if (s[i][strlen(s[i])-1] == '\n')
s[i][strlen(s[i])-1] = '\0';
// 统计单词个数
char *p = strtok(s[i], " "); // 以空格为分隔符,获取第一个单词
while (p != NULL)
{
word_count[i]++; // 单词个数加一
p = strtok(NULL, " "); // 继续获取下一个单词
}
}
// 输出结果
for (int i = 0; i < 4; i++)
{
printf("第%d句话:%s,单词个数:%d\n", i+1, s[i], word_count[i]);
}
return 0;
}
```
上面的代码中,我们首先定义了一个二维字符数组`s[4][20]`,用于保存四句话。然后定义了一个整型数组`word_count[4]`,用于保存每句话中的单词个数。接着,我们用一个循环,依次输入四句话,并对每句话进行单词个数的统计。具体来说,我们使用`strtok()`函数来以空格为分隔符,获取每个单词,然后计数器加一,一直到获取完所有单词为止。最后,我们再用另一个循环,依次输出每句话及其对应的单词个数。
希望能够解决你的问题!
阅读全文