gpt4 book ai didi

c - "Copy string from array to array"使用指针的函数

转载 作者:行者123 更新时间:2023-11-30 18:41:31 25 4
gpt4 key购买 nike

我正在编写一个函数,该函数应该使用指针将字符串从数组复制到另一个数组

#include<stdio.h>

void copy_string(char *to,char *from);

void print_array(char *a);


int main(void)
{
char *s1="Salahuddin";
char *s2="Ashraf";

print_array(s1);
print_array(s2);

copy_string(s1,s2);

print_array(s1);
print_array(s2);

return 0;
}

void print_array(char *a)
{
while(*a!='\0')
printf("%c",*a++);
printf("\n");
}

void copy_string(char *to,char *from)
{
while(*from != '\0')
{
*to++=*from++;
}
}

但是当运行这段代码时,它只打印一次数组(在调用 copy_string 之前)函数,然后退出程序。

我尝试调试它,发现当调用copy_string函数时,编译器会转到那里,检查*from!='\0'条件,然后进入while循环,然后直接转到函数末尾。

我不知道问题出在哪里?

有人可以帮忙吗?提前致谢

最佳答案

char *s1="Salahuddin";
char *s2="Ashraf";

这样,s1s2 指向常量字符串,而不是实际上的字符数组。并且其内容不应更改。

更新为

char s1[20] ="Salahuddin";
char s2[20] ="Ashraf";

这里20只是随机数,您可能需要更改它。

同样在复制函数中,在字符串末尾添加'\0'

void copy_string(char *to,char *from)
{
while(*from != '\0')
{
*to++=*from++;
}
*to = '\0';
}

关于c - "Copy string from array to array"使用指针的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com