这篇文章主要介绍了C语言字符串反转,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
分析
在第18天:利用递归函数调用方式,将所输入的字符以相反顺序打印出来中,已经用过递归实现字符顺序输入,逆序输出,今天的题目是字符串反转,将以字符数组的形式来进行操作。
代码实现
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 50 //最大长度
char *String_Invertion(char *str);
int main()
{
char string[MAX_LENGTH];
printf("请输入一个字符串\n");
scanf("%s", string);
String_Invertion(string);
printf("反转后的字符串为%s\n", string);
return 0;
}
/**
* @brief 字符串反转函数
* @param str 目标字符串
* @return 反转后的字符串(str)
*/
char *String_Invertion(char *str)
{
if(str == NULL)
return NULL;
int len = strlen(str);
int i = 0;
for(i = 0; i < len / 2; i++) //替换len/2次
{
/* (按位)异或交换法,其他交换法参考day27 */
str[i] = str[i] ^ str[len - 1 - i];
str[len - 1 - i] = str[i] ^ str[len - 1 - i];
str[i] = str[i] ^ str[len - 1 - i];
}
return str;
}
运行结果
网上参考
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
void reverse(char* s)
{
// 获取字符串长度
int len = 0;
char* p = s;
while (*p != 0)
{
len++;
p++;
}
// 交换 ...
int i = 0;
char c;
while (i <= len / 2 - 1)
{
c = *(s + i);
*(s + i) = *(s + len - 1 - i);
*(s + len - 1 - i) = c;
i++;
}
}
int main()
{
char s[] = "www.runoob.com";
printf("'%s' =>\n", s);
reverse(s); // 反转字符串
printf("'%s'\n", s);
return 0;
}
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程学习网的更多内容!
沃梦达教程
本文标题为:C语言每日练习之字符串反转
基础教程推荐
猜你喜欢
- 如何C++使用模板特化功能 2023-03-05
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C利用语言实现数据结构之队列 2022-11-22
- 一文带你了解C++中的字符替换方法 2023-07-20
- C++中的atoi 函数简介 2023-01-05
- 详解c# Emit技术 2023-03-25
- C语言 structural body结构体详解用法 2022-12-06
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- C/C++编程中const的使用详解 2023-03-26
- C++详细实现完整图书管理功能 2023-04-04