实现 reverse(const char *s1 , char *s2)
题目:
将字符串s1的内容反转后输出到s2,比如s1="12345678",则输出s2为"87654321",实现语言选择一种即可。
C语言实现时要求不能使用包括strlen在内的任何库函数,也不能定义和使用除s1、s2以外的其它变量。使用如下原型的C函数void reverse(const char *s1, char *s2);
总结:
如果是定义的字符串常量的话,默认类型是const类型的,也就说是如果我们把字符传直接传进去,类型是const,也就是无法修改的!!!
字符串常量 char *p1 = "1234" ; 字符串变量 = char p1[] = "1234';
注意在传参数的时候,最好传入字符数组的首地址,而不是把整个字符串传进去
在翻转的时候,再另外创建一个数组指向s2,这样再赋值,如果直接移动s2,原来的首地址不好找回
1 #include<iostream> 2 #include<string> 3 #include<iomanip> 4 #include<map> 5 #include<vector> 6 #include<cmath> 7 #include<list> 8 #include<stdlib.h> 9 #include<ostream> 10 #include<set> 11 #include<queue> 12 #include<stack> 13 #include<cstring> 14 #include<deque> 15 using namespace std; 16 17 # define ll long long 18 # define ull unsigned long long 19 # define inf 0x3f3f3f3f 20 # define ll_inf (1ll<<60) 21 const int maxn = 2e2 + 100; 22 23 void reverse( const char *s1,char *s2) 24 { 25 int len,j; 26 27 for( len = 0; s1[len] != '\0'; len++); 28 int i ; 29 char *tmp = s2; 30 for( i =0 ; i < len ; i++) 31 { 32 33 char u =s1[len -i -1]; 34 cout << u << endl; 35 *tmp = u; 36 tmp++; 37 } 38 cout << s2 << endl; 39 } 40 41 int main() 42 { 43 char p[] = "1234"; 44 char t[] = "4567"; 45 reverse(p,t); 46 47 return 0; 48 }