字符串翻转的两种方法(1:利用额外空间 2:交换)

Markdown博文大赛清新开启天天爱答题 一大波C币袭来寻找Java大牛!一次拿下软考,,我自有锦囊妙计!

字符串翻转的两种方法(1:利用额外空间 2:交换)

分类:c语言

#include<iostream>using namespace std;#define STRLENTH 100char *str_reverse1(char *str){char temp[STRLENTH];//字符数组:存放逆序后的字符char *p = str;//字符指针:指向最后一个非'\0'字符int i = 0;/*找到最后一个非'\0'字符并使p指向它*/while(*p != '\0'){p++;//while循环之后p指向'\0'p–后指向数组的最后一个字符(非'\0')}p–;/*将逆序后的字符存放在临时空间temp中*/while(p != str){temp[i] = *p;i++;p–;}temp[i] = *p; //while循环之后第一个字符未存放进去temp[i+1] = '\0';//数组末尾f赋'\0'/*将逆序之后的字符拷贝到原数组中*/strcpy(str,temp);return str;}char *str_reverse2(char *str){char *p = str; //字符指针:指向最后一个非'\0'字符char *ret = str;//字符指针: 用于返回数组的首地址/*找到最后一个非'\0'字符并使p指向它*/while(*p != '\0'){p++;}p–;/*对称的字符交换—->达到字符的翻转*/char tmp;while(str < p){tmp = *str;*str = *p;*p = tmp;str++;p–;}return ret;}int main(){char str[] = "abcdefghij";cout<<str_reverse2(str)<<endl;return 0;}

上一篇求解黑洞数

顶0踩0

主题推荐猜你在找

查看评论

* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

核心技术类目

创造条件,去改变生活,做生活的强者.愿你早日成为生活的强者

字符串翻转的两种方法(1:利用额外空间 2:交换)

相关文章:

你感兴趣的文章:

标签云: