题解 | #字符串反转#

字符串反转

https://www.nowcoder.com/practice/e45e078701ab4e4cb49393ae30f1bb04

描述

接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

输入描述:

输入一行,为一个只包含小写字母的字符串。

输出描述:

输出该字符串反转后的字符串。

示例1

输入:
abcd
输出:
dcba
解法一:
#include<stdio.h>
#include<string.h>
//以下是Senky的代码
int main() {
    char a[1000];
    gets(a);
    int len = strlen(a);
    for (int i = 0; i < len; i++) {
        printf("%c", a[len - 1 - i]);
    }
    return 0;
}
解法二:
#include<stdio.h>
#include<string.h>
//以下是Senky的代码:
void reverse_string(char* str)
{
	int left = 0;//指向字符串头
	int right = strlen(str) - 1;//指向字符串尾
	//字符串有奇数个字符则字符串中间的字符不用换
	//字符串有偶数个字符交换完后left>right
		while (left < right)
		{
			char tmp = str[left];//交换两个字符串的内容
			str[left] = str[right];
			str[right] = tmp;
			left++;
			right--;
		}
}
int main()
{
	char a[1000] ;
	gets(a);//手动输入一个字符串
	reverse_string(a);//逆序
	printf("%s", a);//输出
	return 0;//编辑于2022/09/25
}
图解:

总结:
①新增解法二;
②解法一是直接输出,而数组未反转,解法二是反转数组再输出数组;
③当前帖子仅供自我精进、学习使用,有不足之处欢迎指正。
#华为笔试#
华为-HJ 文章被收录于专栏

机试的题解

全部评论

相关推荐

点赞 评论 收藏
分享
喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客企业服务