#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]を設定し、入力がスペースで構成されている場合、それは文字列をコピーしていません。scanf()からソース文字列を読み込んだ後、文字列がコピーされません。
コンパイラのセットアップ: で構成:--prefix = /ライブラリ/開発/ CommandLineToolsは/ usr --with-GXX-含ま-DIR/=は/ usr/C++/4.2.1 アップルLLVMのバージョン8.1.0が含まれます(打ち鳴らす-802.0.42) ターゲット:x86_64版 - アップルdarwin16.5.0 スレッドモデル:POSIX InstalledDir:/ライブラリ/開発/ CommandLineToolsは/ usr/binに
なぜ、C++タグを使いますか? –