反向C风格的字符串? – C
发布时间:2020-12-16 10:27:09 所属栏目:百科 来源:网络整理
导读:我想使用指针来反转C中的char数组.我想知道是否有什么我应该采取不同的做法?我这样做了吗?有没有更有效的方法来实现这一目标? 我的小程序: int main ( ){ char buffer[80]; PrintHeader(); cout "nString reversal program"; cout "nType in a short s
我想使用指针来反转C中的char数组.我想知道是否有什么我应该采取不同的做法?我这样做了吗?有没有更有效的方法来实现这一目标?
我的小程序: int main ( ) { char buffer[80]; PrintHeader(); cout << "nString reversal program"; cout << "nType in a short string of words."; cout << "nI will reverse them."; cout << "n:"; cin.getline(buffer,79); cout << "nYou typed " << buffer; reverse (buffer); cout << "nReversed: " << buffer; cout << endl; system("PAUSE"); return 0; } void reverse(char* string) { char* pStart,*pEnd; int length; char temp; length = strlen(string); pStart = string; pEnd = &string[length - 1]; while(pStart < pEnd) { temp = *pStart; *pStart = *pEnd; *pEnd = temp; pStart++; pEnd--; } } 解决方法void str_reverse( char *str ) { char *str_end = strchr( str,0 ); std::reverse( str,str_end ); } 如果你应该写一个循环, void str_reverse( char *str ) { std::size_t len = std::strlen( str ); for ( std::size_t index = 0; index != len / 2; ++ index ) { std::swap( str[ index ],str[ len - index - 1 ] ); } } 或者,当然,如果你可以使用C字符串, void str_reverse( std::string &str ) { std::reverse( str.begin(),str.end() ); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |