strcmp()를 사용하지 않고 두 문자열을 비교하는 프로그램을 작성했습니다. 그러나 원하는 결과를 얻을 수 없습니다. 내 프로그램 코드는 다음과 같습니다.strcmp()에 대한 프로그램의 C 코드에서 잘못된 점은 무엇입니까?
#include<stdio.h>
int main(int argc, char const *argv[]) {
int i,j;
char a[90],b[90];
printf("Enter the first string:");
scanf("%s", &a[90]);
printf("Enter the second string:");
scanf("%s", &b[90]);
for (i = 0; a[i] != '\0' && b[i] != '\0'; i++) {
if (a[i] == b[i]) {
/* code */
printf("Equal %d \n", a[i]-b[i]);
continue;
} if (a[i] > b[i]) {
/* code */
printf("ai is big %d \n", a[i]-b[i]);
break;
}
if (a[i] < b[i]) {
/* code */
printf("%d bi is the biggest \n", a[i]-b[i]);
break;
}
}
return 0;
}
터미널에서 프로그램을 실행하면 컴파일러에서 입력 문자열을 가져온 다음 중지합니다. 나는 그것을 많이 시도했지만 그것을 이해할 수 없다. 누구든지 나를 도울 수 있습니까 ...!
당신이'scanf'에 마지막 요소 뒤에 하나를 전달하여 달성하려고하는거야? 정의되지 않은 동작을 제외하고 ... –
버퍼가 90 개 커집니다. 그러나 버퍼의 파트에 액세스하려면 0부터 시작하는 인덱싱을 사용합니다. 따라서 0부터 89까지 사용해야합니다. 1에서 90이 아닙니다. –
C에 관한 질문에 C++ 태그를 사용하지 마십시오. –