これらの関数の 1 つを dev-C++ で使用しているときはいつでも (古いことは知っていますが、何らかの理由で大学でまだ教えられています。)
strcat,strcpy,strcmp,strchr...//And their variants stricmp...
これらの関数の最初の引数は常に配列でなければなりません (つまり:
char ch[]="hello";
ただし、何らかの理由で文字列 bc へのポインターにすることはできません。これにより、クラッシュが発生します。実際、例として、これらのコードの両方を見てください。
コード 1:
#include<stdio.h>
#include<string.h>
main()
{char ch[20]="Hello world!";
char *ch2="Hello Galaxy!";
strcat(ch,ch2);
printf("%s",ch);
scanf("%d")//Just to see the output.
}
このコードは正常に動作し、期待どおりの結果が得られます (Hello World!Hello Galaxy!)
しかし、逆 code2 はクラッシュします。
コード 2:
#include<stdio.h>
#include<string.h>
main()
{char ch[20]="Hello world!";
char *ch2="Hello Galaxy!";
strcat(ch2,ch);
printf("%s",ch2);
scanf("%d")//Just to see the output.
}
このコードはクラッシュし、
file.exe has stopped working Error.
これは、2 つの引数を取るほとんどすべての文字列関数で同じです。この問題の原因は何ですか。