7-32 说反话-加强版 (C语言纯字符串解法)

该篇博客介绍了一个C语言编程任务,要求读取一句英语,然后将句中所有单词的顺序颠倒,输出结果。输入字符串由单词和空格组成,单词由英文字母区分大小写,单词间至少有一个空格。程序需确保输出的单词间只有一个空格。
摘要由CSDN通过智能技术生成

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

#include<stdio.h>
#include <math.h>
#include<string.h>

int main(void)
{
   
	char str[500001];
	char* p;
	int i, len
以下是 C 语言实现反话加强版的代码,同时附有注释讲解: ```c #include <stdio.h> #include <string.h> int main() { char input[1000]; // 输入字符串 char output[1000]; // 输出字符串 char word[100]; // 存储单个单词 int len = 0; // 输出字符串的长度 int word_len = 0; // 当前单词的长度 int i = 0, j = 0; // 循环变量 fgets(input, 1000, stdin); // 读取输入字符串 while (input[i] != '\0') { // 循环遍历字符串 if (input[i] != ' ' && input[i] != '\n') { // 如果不是空格或换行符 word[word_len++] = input[i]; // 存储单词 } else { // 遇到空格或换行符 for (int k = word_len - 1; k >= 0; k--) { // 反转单词 output[len++] = word[k]; } output[len++] = ' '; // 在单词后面添加空格 word_len = 0; // 重置当前单词的长度 } i++; // 继续遍历字符串 } for (j = 0; j < len - 1; j++) { // 输出串最后一个字符是空格,因此只输出到倒数第二个字符 printf("%c", output[j]); // 输出字符 } printf("\n"); // 输出换行符 return 0; } ``` 该代码使用了 C 语言自带的标准库函数 `fgets()` 读取输入字符串,然后使用循环遍历字符串中的每个字符。当遇到空格或换行符时,将已经存储的单词反转,并存储到输出字符串中;同时在输出字符串中添加一个空格。最后输出输出字符串,并加上一个换行符。 需要注意的是,在 C 语言中没有字符串类型,因此需要使用字符数组来存储字符串。此外,由于输出字符串需要在循环中动态变化,因此需要使用一个计数器来记录输出字符串的长度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值