문자열 두개 입력받아서 두번째 문자열이 처음 문자열에 포함되어 있는지 확인하고 있으면 n번째, 없으면 -1 리턴하는 함수인데 자꾸 저 함수 안에 printf에서 ?값만 출력돼
#include
int search(char* ori, char* part) {
char partStart = *part;
int count = 0;
int a = 0;
int check = 0;
while (*ori) {
if (*ori == *part) {
a = count;
int b = count;
while (ori[b] == part[b]) {
printf("%c %c ", ori[b], part[b]);
b++;
}
if (part[b] == (char)NULL) {
check = 1;
return a;
break;
}
}
count++;
ori++;
}
if (check == 0) return -1;
int main() {
char arr1[100];
char arr2[100];
scanf_s("%s", arr1, sizeof(arr1));
scanf_s("%s", arr2, sizeof(arr2));
printf("%d ", search(arr1, arr2));
return 0;
}
바보노?
인덴트 씨발 - dc App
안이 복붙햇더니 이렇게됏어 - dc App
그럼 걍 알캡쳐로 캡쳐해서 올려
일단 while(ori[b]==part[b])가 맞는 구문이라고 생각함? ㄹㅇ루? - dc App
part가 ori의 첫부분부터 시작하는게 아니라면? - dc App
그래서 *ori랑 part 첫부분이랑 같을때 while문 굴러가게 했는데 아냐?
다를때는 어디서 처리해주냐? - dc App
이게 정답이네. ori[b] 는 맞는데, part[b] 가 문제다. count가 아닌 0부터 시작하도록 part[b - count] 를 하거나, 전용 인덱스 변수를 만들어야겠다
if (part[b] == 널) 이 부분도 동일하게 고치면 되겠고
와 늒네 해보고 오겟음
널 문자가 ? 로 표시된 것 아닌가?