问题描述:
1、翻转字符串(结果放在参数中)
2、翻转字符串(结果用返回值返回),方法体中动态开辟内存单元
主要考察C语言中对字符串的操作。
void reverse_string(char* src, char* dst){
char *p1, *p2;
p1 = src;
int len=0;
while(*src++)
len++;
p2 = dst + len - 1;
*(p2+1)='\0';
for(int i=0; i<len; i++){
*p2 = *p1;
p2--;
p1++;
}
}
char* reverse_string(char* src){
char* p1 = src;
int len=0;
while(*src++){
len++;
}
char* p2 = (char*)malloc(sizeof(char)*len);
p2 = p2 + len -1;
*(p2+1)='\0';
for(int i=0; i<len; i++){
*p2 = *p1;
p2--;
p1++;
}
p2++;
return p2;
}
void test_reverse_string1(){
char src[] = "12345";
char* dst = (char*)malloc(sizeof(char)*sizeof(src));
reverse_string(src, dst);
while(*dst){
cout<<*dst++;
}
cout<<endl;
}
void test_reverse_string2(){
char src[] = "12345";
char* dst = reverse_string(src);
while(*dst){
cout<<*dst++;
}
cout<<endl;
}
int main()
{
test_reverse_string1();
test_reverse_string2();
return 0;
}