近期笔试题C/C++---2

2014-11-24 12:50:42 · 作者: · 浏览: 1

view plaincopy to clipboardprint
/*
编写函数reverse_string,它的原型如下:
void reverse_string(char *string);
函数把参数字符串中的字符反向排列。
请使用指针而不是数组下标,不要使用任何C函数库中用于操纵字符串的函数。
*/
#include
#include
#include

void reverse_string(char *string);

int main(void)
{
char input[] = "abc";
reverse_string(input);
printf("%s\n", input);
system("pause");
return 0;
}

void reverse_string(char *str)
{
char temp;
char *last = NULL;
char *in = str;
for(last = str; *last != '\0'; last++);
last--;

while(str < last)
{
temp = *str;
*(str++) = *last;
*(last--) = temp;
}
}

//注意,若本程序中的Main函数中input定义为char *input = "abc",则出错。
/*
编写函数reverse_string,它的原型如下:
void reverse_string(char *string);
函数把参数字符串中的字符反向排列。
请使用指针而不是数组下标,不要使用任何C函数库中用于操纵字符串的函数。
*/
#include
#include
#include

void reverse_string(char *string);

int main(void)
{
char input[] = "abc";
reverse_string(input);
printf("%s\n", input);
system("pause");
return 0;
}

void reverse_string(char *str)
{
char temp;
char *last = NULL;
char *in = str;
for(last = str; *last != '\0'; last++);
last--;

while(str < last)
{
temp = *str;
*(str++) = *last;
*(last--) = temp;
}
}

//注意,若本程序中的Main函数中input定义为char *input = "abc",则出错。

上面出错原因,我还不清楚,希望高人指点!

作者“xhz1234的专栏”