C/C++编程学习 - 第7周 ⑦ 单词翻转

题目链接

题目描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入格式
只有一行,为一个字符串,不超过 500 个字符。单词之间以空格隔开。

输出格式
翻转每一个单词后的字符串,单词之间的空格需与原文一致。

注意
字符串开头和结尾可能有空格。

Sample Input

hello world

Sample Output

olleh dlrow

思路

输入一行带空格的字符串,每个单词倒序输出,倒序输出就是从后往前输出。

C语言代码:

#include <string.h>
#include <stdio.h>
char s[10005];
int main()
{
    
    
    int len, position, sum = 0, i, j;
    gets(s);		//输入
    len = strlen(s);//求字符串长度
    s[len] = ' ';	//末尾加一空格方便计算
    for(i = 0; i <= len; i++)
    {
    
    
        if(s[i] != ' ') sum++;	//计算单词长度
        else
        {
    
    
            position = i;		//记录单词末位置
            for(j = 1; j <= sum; j++)	//倒序输出
                printf("%c", s[--position]);
            sum = 0;//计数器归零
            if(i != len) printf(" ");
        }
    }
    printf("\n");
    return 0;
}

C++代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	char a[510];
	cin.getline(a, 510);
	strcat(a, " ");
	int len = strlen(a), pos1 = 0, pos2;
	for(int i = 0; i < len; i++)
		if(a[i] == ' ')
		{
    
    
			pos2 = i;
			for(int j = pos2 - 1; j >= pos1; j--)
				cout << a[j];
			cout << " ";
			pos1 = pos2 + 1;
		}
	return 0;
}

没有C语言基础的同学们,可以先学习一下C语言语法,我会整理好,后面发出来
我已经写好了,可以去C语言程序设计专栏第一周的内容

本周其他练习:

C语言程序设计专栏

C/C++编程学习 - 第7周 ① 计算(a+b)*c的值

C/C++编程学习 - 第7周 ② 计算(a+b)/c的值

C/C++编程学习 - 第7周 ③ 角谷猜想

C/C++编程学习 - 第7周 ④ 鸡尾酒疗法

C/C++编程学习 - 第7周 ⑤ 与指定数字相同的数的个数

C/C++编程学习 - 第7周 ⑥ 合影效果

C/C++编程学习 - 第7周 ⑦ 单词翻转

猜你喜欢

转载自blog.csdn.net/qq_44826711/article/details/112912192
今日推荐