编写C语言程序颠倒句子中单词的顺序:+Enter+a+sentence:+you+can+cage+a+swallow+can't+you?+++++++++++++++Reversal+of+sen
时间: 2023-12-14 11:32:34 浏览: 243
以下是C语言程序颠倒句子中单词的顺序的代码和解释:
```c
#include <stdio.h>
#include <string.h>
void reverseWords(char *s) {
int i, j, len = strlen(s);
for (i = len - 1; i >= 0; i--) {
if (s[i] == ' ') {
s[i] = '\0';
printf("%s ", &(s[i]) + 1);
}
}
printf("%s", s);
}
int main() {
char s[1000];
printf("Enter a sentence: ");
fgets(s, 1000, stdin);
printf("Reversal of sen: ");
reverseWords(s);
return 0;
}
```
解释:
1. `reverseWords`函数用于颠倒句子中单词的顺序。它的参数`s`是一个指向字符数组的指针,表示输入的句子。
2. `strlen`函数用于获取字符串`s`的长度。
3. `for`循环从字符串`s`的末尾开始遍历,每当遇到一个空格时,就将其替换为字符串结束符`\0`,然后输出该空格后面的单词。
4. 最后输出整个字符串`s`,即第一个单词。
相关问题
编写程序计算句子的平均词长:+ Enter+a+sentence:+It+was+deja+vu+all+over+again.+ Average+word+length:+3.4+++ 简单起
编写程序计算句子的平均词长可以使用以下Python代码实现:
```python
sentence = input("Enter a sentence: ")
words = sentence.split()
total_length = sum(len(word) for word in words)
average_length = total_length / len(words)
print("Average word length:", round(average_length, 1))
```
运行程序后,输入一个句子,程序将会计算出该句子的平均词长并输出。
使用c语言编写:Write a Program that reverses the words in a sentence. Enter a sentence: you can cage a swallow can’t you? Reversal of sentence: you can’t swallow a cage can you?
以下是使用C语言编写的程序,可以将输入的句子中的单词顺序翻转:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char sentence[MAX_LEN];
printf("Enter a sentence: ");
fgets(sentence, MAX_LEN, stdin);
int len = strlen(sentence);
if (len > 0 && sentence[len - 1] == '\n') {
// 去掉fgets读入的换行符
sentence[len - 1] = '\0';
}
char *word, *saveptr;
char *reversed_sentence = "";
// 使用strtok函数将句子按照空格分割成单词
word = strtok_r(sentence, " ", &saveptr);
while (word != NULL) {
// 将每个单词插入到结果字符串的开头
char tmp[MAX_LEN];
sprintf(tmp, "%s ", word);
strcat(tmp, reversed_sentence);
reversed_sentence = tmp;
word = strtok_r(NULL, " ", &saveptr);
}
// 去掉最后一个空格
reversed_sentence[strlen(reversed_sentence) - 1] = '\0';
printf("Reversal of sentence: %s\n", reversed_sentence);
return 0;
}
```
该程序使用fgets函数从标准输入中读取一个句子,然后使用strtok_r函数将句子按照空格分割成单词。之后,程序将每个单词插入到结果字符串的开头,最终得到一个单词顺序翻转后的句子。注意,最后一个单词后面不应该有空格,因此需要手动去掉结果字符串的最后一个字符。
阅读全文