C语言改变函数参数的值
我有一个函数func(X),X 是字符串类型的,我先把函数最终的结果体现在X中,就是说函数执行完之后,我可以读取X的值得到结。我知道如果X是int等类型的话要用传递实参的引用就可以了,但是现在X是字符串类型的怎么搞。
例如,swap(X,Y),交换X,Y的值,其中X,Y都是字符串类型的。 用C语言实现。 c 字符串 函数参数
[解决办法]
void swap(char *&s1, char *&s2)
{
char *stemp = s1;
s1 = s2;
s2 = stemp;
}//调用时直接传char*的参数就可以了
void swapStr(char *str1 ,char *str2)
{
if (strlen(str1) != strlen(str2))
{
printf("长度不同无法交换!\n");
return;
}
char *pTemp = new char[strlen(str1)+1];
memset(pTemp ,0 ,strlen(str1)+1);
strcpy(pTemp ,str1);
strcpy(str1 ,str2);
strcpy(str2 ,pTemp);
delete []pTemp;
}
int main(int argc, _TCHAR* argv[])
{
char p1[] = "hello";
char p2[] = "world";
swapStr(p1 ,p2);
printf("%s-%s" ,p1 ,p2);
return 0;
}