字符串逆序
目录
[编程题]字符逆序(来自牛客网)
方案一:函数+数组
代码思路
代码
方案二:指针实现
代码思路
代码
方案三:利用两个数组实现字符串的逆序(最简单)
代码
代码解释
[编程题]字符逆序(来自牛客网)
题目:将一个字符串str的内容颠倒过来,并输出。
数据范围:1 ≤ len(str) ≤10000
输入格式 输入一个字符串,可以有空格
输出格式 输出逆序的字符串
示例1:
输入:I am a student
输出:tneduts a ma I
示例2:
输入:nowcoder
输出:redocwon
方案一:函数+数组
代码思路
1.创建一个数组a并初始化
2.把字符串输入到该数组a
3.求该数组的长度
4.函数实现字符逆序
(1)用left 和 right 定义字符串的开始和末尾(' \0 '的前一个)
(2)使用while循环,并创建一个暂时变量,用数组交换,并实现逐步输出
代码
void reverse_string(char* a,int len)
{char left = 0;char right = len - 1;while (left < right){char temp = a[left];a[left] = a[right];a[right] = temp;left++;right--;}
}int main()
{char a[10000] = { 0 };gets(a);int len = strlen(a);reverse_string(a, len);printf("%s\n", a);return 0;
}
方案二:指针实现
代码思路
1.创建一个字符数组a并初始化
2.输入字符串到该数组a
3.求字符串长度a
4.使用指针定义该字符串最左端和最右端,同上👆再利用while循环交换再输出
代码
int main()
{char a[10000] = { 0 };gets(a);int len = strlen(a);char* left = a;char* right = a + len - 1;while (left < right){char* temp = *left;*left = *right;*right = temp;right--;left++;}printf("%s\n", a);return 0;
}
方案三:利用两个数组实现字符串的逆序(最简单)
代码
int main()
{char a[10] = { 0 };char b[10] = { 0 };gets(a);int len = strlen(a);int i = 0;for (i = 0; i <= (len - 1); i++){b[i] = a[len - 1 - i];}printf("%s\n", b);return 0;
}
代码解释
***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。
等等等等一下,分享最近喜欢的一句话:“爱情与希望是会杀人的乌托邦”。
我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!!
好了划走把。