编写程序实现将键盘输入的一行字符按单词倒排输出。如键盘输入“I love you”,屏幕显示“you love I”。要求: (1) 编写一个函数int invertion(char ch1[], char ch2[])实现按单词倒排字符串,第一个形参ch1接受实参传过来的原字符串,倒排后的新字符串通过第二个形参返回主函数,函数中还需要统计该字符串中共有多少个单词,函数最后返回字符串中包含的单词个数。 (2) 主函数中输入字符串,调用子函数invertion,输出倒排后的字符串及字符串中包含的单词个数。
时间: 2023-01-28 13:45:10 浏览: 157
以下是示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 字符串最大长度
// 函数原型
int invertion(char ch1[], char ch2[]);
int main(void)
{
char str[MAX_LEN]; // 存储输入的字符串
char inverted_str[MAX_LEN]; // 存储倒排后的字符串
int word_count; // 存储字符串中单词的个数
// 输入字符串
printf("请输入一行字符串:");
gets(str);
// 调用invertion函数,并将返回的单词个数存储到word_count中
word_count = invertion(str, inverted_str);
// 输出倒排后的字符串
printf("倒排后的字符串为:%s\n", inverted_str);
// 输出单词个数
printf("字符串中共有%d个单词。\n", word_count);
return 0;
}
// invertion函数实现
int invertion(char ch1[], char ch2[])
{
int i, j;
int word_count = 0; // 存储单词个数
int len = strlen(ch1); // 字符串ch1的长度
char word[MAX_LEN]; // 存储单词
// 倒排字符串
for (i = len - 1; i >= 0; i--)
{
// 如果当前字符为空格或者到达字符串末尾,则将之前的单词存储到word中
if (ch1[i] == ' ' || i == 0)
{
if (i == 0)
{
// 到达字符串末尾,将当前字符存储到word中
word[j] = ch1[i];
}
// 将单词倒排后存储到ch2中
for (j = strlen(word) - 1; j >= 0;
阅读全文