【发布时间】:2022-01-05 11:59:32
【问题描述】:
我试图在 char 数组中的特定位置插入一个字符 (char *peep),但每次尝试时,都会出现 strcpy 错误
当前代码
int main(){
char *peep = malloc(256);
int pos;
char character, charToStr[2];
charToStr[1] = '\0';
printf("\nCharacter to insert: ");
scanf("%c", &character);
printf("Position to insert: ");
scanf("%d", &pos);
printf("\nPeep becomes\n%d:%c", pos,character);
charToStr[0] = character;
strcpy(peep[pos-1],charToStr);
printf("this is peep: \n%d:%c",pos,peep[pos-1]);
}
我尝试过使用 strncpy() 无济于事,并且诚实地尝试了许多其他方法
【问题讨论】:
-
strcpy 需要一个 char 指针作为它的第一个参数,你传递的是一个 char。
-
我希望传递的字符进入特定位置,如果没有第一个参数,我该怎么做?
-
peep[pos-1] = character;?虽然不确定您真正想要做什么,因为peep的其余部分仍将包含垃圾数据。 -
printf("this is peep: \n%d:%c",pos,peep[pos]);以及为什么要在设置索引pos-1时尝试在索引pos处打印?整个代码真的没什么意义。 -
这是一个错字,感谢您的第一条评论
标签: arrays c char scanf strcpy