用C或C++实现void reverse( char* str )函数,即反转一个null结尾的字符串。
分析:先确定字符串的长度,然后从两端往中间遍历,同时交换两端的元素。
1 #include <iostream> 2 #include <fstream> 3 #include <cstring> 4 5 using namespace std; 6 7 void reverse( char *str ); 8 9 int main( int argc, char *argv[] ) { 10 string data_file = "./1.2.txt"; 11 ifstream ifile( data_file.c_str(), ios::in ); 12 if( !ifile.is_open() ) { 13 fprintf( stderr, "cannot open file: %s\n", data_file.c_str() ); 14 return -1; 15 } 16 char buffer[1000]; 17 while( ifile.getline( buffer, 999 ) ) { 18 cout <<buffer <<": "; 19 reverse( buffer ); 20 cout <<buffer <<endl; 21 } 22 ifile.close(); 23 return 0; 24 } 25 26 void reverse( char *s ) { 27 int slen = strlen( s ); 28 for( int i = 0; i < slen/2; ++i ) { 29 swap( s[i], s[slen-i-1] ); 30 } 31 return; 32 }
测试文件
a aa ab abc abcd aaaaaaaaaaaaaaaaaaa
时间: 2024-10-13 20:57:06