게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 문자열 검색 질문드립니다.
게시물ID : programmer_4468짧은주소 복사하기
작성자 : LUminary
추천 : 0
조회수 : 741회
댓글수 : 9개
등록시간 : 2014/07/10 17:41:50
옵션
  • 본인삭제금지
int main()
{
char a[30] = "programinglsunderstanding";
char s[30];
int i;
int j;
int k = 0;
int count = 0;
printf("%s\n", a);

printf("검색 할 문자열 : \n");

scanf("%s", &s);

for (i = 0; i<30; i++)

{
if (a[i] == s[0])
{
k = 0;
while (s[k] != '\0')
{
if (a[i + k] == s[k])
{

a[i + k] = ' ';


k++;


}


}
count++;
}

}

printf("횟수 : %d", count);
printf("\n");


for (i = 0; a[i] != '\0'; i++)
{
if (a[i] != ' ')
printf("%c", a[i]);
}



}

일단

출력화면을 말씀드리면

ProgramingIsunderstanding   // 출력
ing  //입력
횟수 : 2 // ing문자열이 두개 있으므로
ProgramIsunderstand // ing문자열만 쏙 빼고 출력..


완벽하게 구현한 프로그램인 줄 알았는데 한가지 문제점을 발견했습니다.

처음 배열에 입력 문자열이 "Programingisunderstanding" 인경우입니다.

위에 볼드체로 표시했는데요.


if (a[i] == s[0])

이 조건이 Program(ing)(i)sunderstanding

즉 입력한 ing를 기존 문자열에서 찾고 난뒤

다시 바로뒤에 i가 나오면 입력한 문자열 ing의 첫번째와 다시 중복되는바람에

결과화면 Programsunderstand //(그냥 Programisunderstand라고 출력하고싶은데요..)

라고 출력되는 결과가 나타납니다..

어떻게 하면 해결할 수 있을까요? ㅠㅠ

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호