实现 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 }

 

posted @ 2019-09-12 11:40  Let_Life_Stop  阅读(320)  评论(0编辑  收藏  举报