c语言统计字符数组中单词个数
时间: 2024-06-13 16:09:15 浏览: 70
以下是一个C语言统计字符数组中单词个数的例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello Everyone";
int i, word, flag;
word = 0;
flag = 0;
for (i = 0; str[i] != '\0';++) {
if (str[i] ==' ') {
flag = 0;
} else if (flag == 0) {
word++;
flag = 1;
}
}
printf("word=%d\n", word);
}
```
输出结果为:
```
word=2
```
相关问题
c语言统计数组中单词个数
假设单词之间以空格或者其他非字母字符分隔,可以使用以下代码实现:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_SIZE 100
int main() {
char str[MAX_SIZE];
int word_count = 0;
int i;
printf("请输入字符串:");
fgets(str, MAX_SIZE, stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i]) && !isalpha(str[i+1])) {
word_count++;
}
}
printf("单词个数为:%d\n", word_count);
return 0;
}
```
代码解释:
1. 首先定义一个字符数组 `str`,用于存储输入的字符串,同时定义一个常量 `MAX_SIZE`,限制输入字符串的最大长度;
2. 定义一个整型变量 `word_count`,用于统计单词个数,初始化为0;
3. 使用 `fgets` 函数从标准输入中读取字符串,并存储到 `str` 数组中;
4. 使用 `for` 循环遍历 `str` 数组中的每个字符;
5. 如果当前字符是字母,并且下一个字符不是字母,则说明当前字符是一个单词的结尾,将单词计数器 `word_count` 加1;
6. 循环结束后,输出单词个数。
注意:上述代码中使用了 `isalpha` 函数判断字符是否为字母,需要包含头文件 `ctype.h`。此外,如果输入的字符串长度超过了 `MAX_SIZE`,可能会导致程序出错,需要进行额外的处理。
用c语言用字符数组存储字符串并进行输入输出,测试输入zhangsan lisi
好的,下面是用 C 语言字符数组存储字符串并进行输入输出的代码:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入字符串:");
scanf("%s", str);
printf("您输入的字符串是:%s\n", str);
return 0;
}
```
我们定义了一个字符数组 `str`,大小为 `MAX_LEN`,即最大为 100 个字符。然后通过 `scanf` 函数输入字符串,再通过 `printf` 函数输出字符串。
测试输入 "zhangsan lisi" 后,输出结果为:
```
请输入字符串:zhangsan lisi
您输入的字符串是:zhangsan
```
发现只输出了 "zhangsan",这是因为 `scanf` 函数默认以空格、制表符或换行符作为字符串的结束符,所以只读取了第一个单词。如果要读取整个字符串,可以使用 `%[^\n]` 格式说明符,表示读取到换行符为止的所有字符,修改代码如下:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
printf("请输入字符串:");
scanf("%[^\n]", str);
printf("您输入的字符串是:%s\n", str);
return 0;
}
```
再次测试输入 "zhangsan lisi",输出结果为:
```
请输入字符串:zhangsan lisi
您输入的字符串是:zhangsan lisi
```
这次输出了整个字符串 "zhangsan lisi",输入输出成功。
阅读全文