프로그래밍 언어/C언어

[실전C프로그래밍] 10장 문자열_4

선잠 2023. 1. 18. 21:55

실전 C프로그래밍(나중채 외) 교재를 바탕으로 학습하고, 해결한 실습문제의 답을 기록합니다.

(정답이 아니기에 오류 지적이나 피드백을 환영함)

 

저작권으로 인해 자세한 문제는 생략합니다.

 

Q. 공백을 포함하지 않는 문자열 2개를 받아서 일치하는지 검사하고, 첫 번째 문자열의 길이와 일치 여부 출력

(strlen과 strcmp 사용X, 두 문자열 길이는 각각 최대 100, 일치 시 1/ 불일치 시 0 출력)

#include <stdio.h>

int main() {
    char A[101], B[101];
    int lenA = 0, lenB = 0, i, j;
    
    scanf("%s", A);
    scanf("%s", B);
    
    while (A[lenA]) lenA++;
    while (B[lenB]) lenB++;
    
    printf("%d ", lenA);
    
    for (i = 0, j = 0; i < lenA || j < lenB; i++, j++) {
    	if (A[i] != B[j]) {
        	printf("0\n");
            break;
        }
        else {
        	printf("1\n");
            break;
        }
    }
    
    return 0;
}

또는

#include <stdio.h>

int main() {
    char A[101], B[101];
    int lenA = 0, lenB = 0, i, j;
    
    scanf("%s", A);
    scanf("%s", B);
    
    while (A[lenA]) lenA++;
    while (B[lenB]) lenB++;
    
    while (i < lenA || i < lenB) {
    	if (A[i] != B[i]) {
        	flag = 0;
        	break;
        }
        i++;
    }
    
    if (flag)
    	printf("%d 1\n", lenA);
    else
    	printf("%d 0\n", lenA);
    
    return 0;
}