文字列比較
最長10文字の文字列を2件入力し、char型の配列にそれぞれ格納する。2つの文字列を比較し、文字列が同じだったら「equal」を表示し異なっていたら「Not equal」を表示するプログラムを作成せよという課題が出ました。
条件として、11文字以上の文字が入力されたら、先頭から10文字までを有効とし、11文字目以降を無視する。下記のプログラムで文字列1に11文字以上入力すると、うまく動きません。なぜ、うまくいかないかと、どうなおしたらよいかを教えてください。
#include<stdio.h>
#include<string.h>
#define max_length 10
void get_string (char *p_str, int size);
int main()
{
char string1[max_length+2];
char string2[max_length+2];
printf("文字列1:");
get_string(string1,max_length+2);
printf("文字列2:");
get_string(string2,max_length+2);
if(!strncmp(string1,string2,max_length))
puts("equal");
else
puts("Not equal");
}
void get_string (char *p_str, int size)
{
fgets(p_str,size,stdin);
}
お礼
迅速な解答ありがとうございます。 できました。