gpt4 book ai didi

使用指针复制字符串而不使用 strcpy

转载 作者:行者123 更新时间:2023-11-30 20:30:35 24 4
gpt4 key购买 nike

我正在尝试使用指针将字符串 str 复制到 str 中。我认为这可以使用单个指针本身来实现。每当我运行我的代码时,我都会显示 str1 但带有过多不需要的垃圾字符。请帮忙。提供一些见解

#include<stdio.h>
void main()
{
char str[10];
char str1[10];
printf("Enter a string");
scanf("%s",str);
char *p;
char *q;
int len=0,i=0;
p=&str;
q=&str;

while (*p!='\0')
{
len=len+1;
p=p+1;
}

printf("%d",len);
printf("\n");

while (len>0)
{
str1[i]=*q;
len=len-1;
}

printf("%s",str1);
}

最佳答案

str1[i] 始终是相同的元素,因为您从不递增 i。因此,所有其他元素保持不变,并且 q 的空终止符永远不会被复制。

然后,当您打印它时,程序有未定义的行为。

最好将 i0 循环到 len

您还应该考虑使用 = {} 初始化数组,以便它们首先包含 null。

此外,您的 scanf 非常不安全,因为它不执行边界检查。

关于使用指针复制字符串而不使用 strcpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53867969/

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