提供了一个指向字符串的指针数组作为输入。任务是反转存储在输入指针数组中的每个字符串。我做了一个名为reverseString()的函数,它反转了传递给它的字符串。据我所知,这个功能正常工作。存储在指向C中多个字符串的指针数组中的单个字符串存在问题
在输入指针数组中存储/引用的字符串被逐个发送到reverseString()函数。但是,当传递的字符串的值使用临时变量交换时,代码会在reverseString()函数的某个位置挂起。我无法弄清为什么代码在交换值时挂起。请帮我解决一下这个。
的代码如下:
#include <stdio.h>
void reverseString(char*);
int main()
{ char *s[] = {"abcde", "12345", "65gb"};
int i=0;
for(i=0; i< (sizeof(s)/sizeof(s[0])); i++)
{ reverseString(s[i]);
printf("\n%s\n", s[i]);
}
getch();
return 0;
}//end main
void reverseString(char *x)
{ int len = strlen(x)-1;
int i=0;
char temp;
while(i <= len-i)
{ temp = x[i];
x[i] = x[len-i];
x[len-i] = temp;
i++;
}
}//end reverseString
这功课吗? –
我从参考书上学习C编程。这个问题是本书的练习之一。所以我想这不能归类为功课,可以吗? (我不是很清楚这个,因为我是一个新手在stackoverflow ...) – nhylated
http://stackoverflow.com/questions/1614723/why-is-this-c-code-causing-a-segmentation-故障 即使功能名称也是一样的。 – AnT