gpt4 book ai didi

c - 从 scanf() 读取源字符串后,字符串未被复制

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:16 24 4
gpt4 key购买 nike

#include<stdio.h>

int main(){
char a[20],*p;
p=a;
printf("Enter the String");
scanf("%s",p);
printf("\n\n%s\n",p);
printf("Copying the String\n");
char b[20],*pp;
pp=b;
while((*pp++=*p++));
printf("\n%s\n",pp);

}

此代码不复制字符串。但是,如果我将 b[20] 更改为 b[10],它会复制字符串的最后 9 个字符。顺便说一下,当我设置 b[10] 时,如果输入包含一个空格,那么它不会复制字符串。


编译器设置:

配置为:--prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM 版本 8.1.0 (clang-802.0.42)
目标:x86_64-apple-darwin16.5.0
线程模型:posix
安装目录:/Library/Developer/CommandLineTools/usr/bin

最佳答案

之后:

    while((*pp++=*p++));

pp 指向字符串的末尾。你想要:

     printf("\n%s\n",b);

关于c - 从 scanf() 读取源字符串后,字符串未被复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44089089/

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