用C语言编写一个将英语句子拆分输出每个单词
时间: 2023-06-10 20:05:35 浏览: 75
好的,您可以使用以下代码来将英语句子拆分输出每个单词:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入英语句子:");
fgets(str, 100, stdin); // 获取输入的字符串
int len = strlen(str);
int i = 0, j = 0;
while(i < len) {
if(str[i] != ' ' && str[i] != '\n') { // 遇到空格或换行符结束
printf("%c", str[i]); // 输出单词的每个字符
} else {
printf("\n"); // 换行输出下一个单词
}
i++;
}
return 0;
}
```
运行以上代码后,控制台会等待您输入一段英语句子,然后程序会将每个单词拆分输出。
相关问题
用C语言编写一个函数,实现逆向输出字符串的单词
以下是用C语言编写一个函数,实现逆向输出字符串的单词的例子:
```c
#include<stdio.h>
#include<string.h>
void reverseWords(char *s) {
int len = strlen(s);
int i = 0, j = 0;
while (i < len) {
while (i < len && s[i] == ' ') i++;
if (i >= len) break;
j = i + 1;
while (j < len && s[j] != ' ') j++;
reverse(s + i, s + j);
i = j;
}
reverse(s, s + len);
}
void reverse(char *begin, char *end) {
char temp;
while (begin < end) {
temp = *begin;
*begin++ = *end;
*end-- = temp;
}
}
int main() {
char str[] = "I love programming";
printf("Original string: %s\n", str);
reverseWords(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
输出:
```
Original string: I love programming
Reversed words: programming love I
```
该函数首先使用两个指针 `i` 和 `j` 遍历字符串,以找出每个单词的起始位置和结束位置,然后使用 `reverse` 函数将每个单词反转,最后使用 `reverse` 函数将整个字符串反转。
请使用c语言编写一个程序,这个程序可以统计一句英文句子中每个单词的字符长度,并输出
### 回答1:
我可以为您提供一个简单的C语言程序,用于统计一句英文句子中每个单词的字符长度: #include <stdio.h>
#include <string.h> int main()
{
char str[100];
int count[50], len;
printf("请输入一句英文:");
gets(str);
len = strlen(str);
int j = 0;
count[j] = 0;
for (int i=0; i<=len; i++)
{
if (str[i] == ' ' || str[i] == '\0')
{
printf("单词 %d 的字符长度为:%d\n", j+1, count[j]);
j++;
count[j] = 0;
}
else
count[j]++;
}
return 0;
}
### 回答2:
以下是使用C语言编写的统计英文句子中每个单词字符长度的程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100];
int wordCount = 0;
int wordLength = 0;
printf("请输入一句英文句子:");
fgets(sentence, sizeof(sentence), stdin);
for (int i = 0; i <= strlen(sentence); i++) {
if (sentence[i] == ' ' || sentence[i] == '\0') {
if (wordLength > 0) {
printf("第 %d 个单词长度为 %d\n", wordCount, wordLength);
wordCount++;
wordLength = 0;
}
} else {
wordLength++;
}
}
return 0;
}
```
该程序可以接收用户输入的英文句子,并统计每个单词的字符长度,并输出结果。程序使用fgets函数接收用户输入的句子,存储在字符数组`sentence`中,同时使用`sizeof(sentence)`来限制输入长度不超过数组容量。接下来,程序通过遍历句子中的每个字符,检查每个字符是否为空格或者是句子的结束符号。如果是空格或结束符号,则判断`wordLength`是否大于零,如果是则表示当前已经统计完一个完整的单词,输出该单词的字符长度,并将`wordCount`计数加一;同时将`wordLength`重新置零,以统计下一个单词的字符长度。如果当前字符不是空格或结束符号,则将`wordLength`加一,表示统计当前单词的字符长度。
注意,句子输入结束后会多输出一行统计结果,表示最后一个单词的字符长度。
### 回答3:
以下是用C语言编写的程序,可以统计一句英文句子中每个单词的字符长度并输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100];
int wordLength[20];
int wordCount = 0;
printf("请输入一句英文句子:");
fgets(sentence, sizeof(sentence), stdin);
char *token = strtok(sentence, " "); // 使用空格作为分隔符,将句子切分为单词
while (token != NULL) {
wordLength[wordCount] = strlen(token);
wordCount++;
token = strtok(NULL, " ");
}
printf("每个单词的字符长度为:\n");
for (int i = 0; i < wordCount; i++) {
printf("单词%d: %d\n", i + 1, wordLength[i]);
}
return 0;
}
```
程序的工作原理如下:
1. 首先,我们定义了一个包含100个字符的字符数组`sentence`,用来存储用户输入的句子。
2. 接下来,我们定义了一个包含20个整数的数组`wordLength`,用来存储每个单词的字符长度。
3. 使用`printf`函数提示用户输入一句英文句子,并使用`fgets`函数接收用户输入。
4. 我们使用`strtok`函数将句子按照空格字符进行分割,并将分割得到的每个单词存储到数组`wordLength`中。
5. 具体而言,我们使用`strtok`函数首先将`sentence`中的第一个单词提取出来,并将其存储在指针`token`中。
6. 进入一个循环,判断指针`token`是否为空,如果非空,则将当前单词的字符长度存储在`wordLength`数组的对应位置,同时计数器`wordCount`累加1。
7. 使用`strtok`函数再次调用,继续寻找下一个单词,直到句子中的所有单词都被统计完毕。
8. 最后,使用`printf`函数将每个单词的字符长度逐个输出到屏幕上。
请注意,上述程序假设句子中的单词数量不超过20个,并且每个单词的字符数量不超过100。如有需要,可以根据实际输入进行适当的修改。