现在的位置: 首页 > 综合 > 正文

CC150:翻转一个C风格的字符串

2019年11月03日 ⁄ 综合 ⁄ 共 539字 ⁄ 字号 评论关闭



      写代码翻转一个C风格的字符串。(C风格的意思是"abcd"需要用5个字符来表示,包含末尾的 结束字符)

      需要注意的是是否处理最后一个结束字符

#include <iostream>
#include <cstring>
using namespace std;
/*将一个C风格的字符串反转
 C风格的代码有结束字符,是要注意的可有reverse1() 
 如果忽略了的话,那么直接reverse2()就可以了 
*/ 
//此函数用的时候需注意,如果swap(a,a)会挂的。可以使用加法或中间变量法 
void swap(char &a,char &b){
	a = a^b;
	b = a^b;
	a = a^b;
}
//忽略结束字符 
void reverse1(char *s){
	if(!s) return;
	char *p = s,*q = s;
	while(*q) ++q;
	--q;
	while(p < q) swap(*p++,*q--);
}
//处理带有结束字符的情况 
void reverse2(char *s){
	int n = strlen(s);
	for(int i=0;i<n/2;++i)
		swap(s[i],s[n-1-i]);
}

int main(){
	char s[] = "1234567890";
	reverse1(s);
	cout<<s<<endl;
	return 0;
}

抱歉!评论已关闭.