编写程序实现将键盘输入的一行字符按单词倒排输出。如键盘输入“I love you”,屏幕显示“you love I”。要求: (1) 编写一个函数int invertion(char ch1[], char ch2[])实现按单词倒排字符串,第一个形参ch1接受实参传过来的原字符串,倒排后的新字符串通过第二个形参返回主函数,函数中还需要统计该字符串中共有多少个单词,函数最后返回字符串中包含的单词个数。 (2) 主函数中输入字符串,调用子函数invertion,输出倒排后的字符串及字符串中包含的单词个数。用c语言给出完整代码,同时要求将子函数放在开头
时间: 2023-02-05 18:03:29 浏览: 171
以下是使用 C 语言编写的完整代码:
#include <stdio.h>
#include <string.h>
/* 定义 invertion 函数,用于将输入的字符串倒排并统计单词个数 */
int invertion(char ch1[], char ch2[])
{
int i, j, k, count = 0;
int len = strlen(ch1);
/* 从字符串末尾开始,找到第一个单词的末尾 */
for (i = len - 1; i >= 0; i--)
{
if (ch1[i] == ' ' || i == 0)
{
/* 如果 i 为 0,说明这是最后一个单词,将整个单词拷贝到新字符串中 */
if (i == 0)
{
for (j = i; j < len; j++)
{
ch2[k++] = ch1[j];
}
}
/* 否则,从 i+1 开始拷贝单词到新字符串中 */
else
{
for (j = i + 1; j < len; j++)
{
ch2[k++] = ch1[j];
}
}
/* 在新字符串的末尾加上一个空格 */
ch2[k++] = ' ';
count++;
}
}
/* 在新字符串的末尾加上一个字符串结束符 */
ch2[k] = '\0';
/* 返回单词个数 */
return count;
}
int main()
{
char ch1[100], ch2[100];
int count;
/* 输入字符串 */
printf("请输入一行字符:");
gets(ch1);
/* 调用 invertion 函数,并输出倒排后的字符串和单词个数 */
count = invertion(ch1, ch2);
printf("倒排后的字符串为:%s\n", ch2);
printf("字符串中包含 %d 个单
阅读全文