편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.11.29

    C언어 과제 문자열에서 찾는 문자열의 이전 문자들을 리턴


    char *str_chr(char *s, int c){
      int i = 0;
      while(s[i]){
        if(s[i] != c){
          return &s[i];
        }
        i++;
      }
      return NULL;
    }
    
    int main(){
      char str[100];
      char ch[10];
      char *p;
    
      scanf("%s %s", str, ch);
    
      if((p = str_chr(str, ch[0])) == NULL)
        printf("NO");
      else
        printf("이전문자는 %s 입니다.", p);
    
      return 0;
    }
    

    이런 식으로 계속 도전해 보고 있기는 한데 str_chr 사용자 정의 함수로 입력 받은 문자열에서 찾는 문자열의 이전 문자들을 리턴시키려고 계속 해보는데 도저히 결론에 도달하기가 힘듦니다. 어떻게 코드를 손봐야할지 조언좀 해주실수 있을까요?

    하필 조건중에 저기 if, else 문을 꼭 사용하라고 하더라구요. 저 조건때문에 너무 어렵습니다.

  • 프로필 IBNhyeoli님의 편집
    날짜2021.11.29

    C언어 과제 도중 도저히 결론에 도달할 수 없어 질문드립니다


    char *str_chr(char *s, int c){
      int i = 0;
      while(s[i]){
        if(s[i] != c){
          return &s[i];
        }
        i++;
      }
      return NULL;
    }
    
    int main(){
      char str[100];
      char ch[10];
      char *p;
    
      scanf("%s %s", str, ch);
    
      if((p = str_chr(str, ch[0])) == NULL)
        printf("NO");
      else
        printf("이전문자는 %s 입니다.", p);
    
      return 0;
    }
    

    이런 식으로 계속 도전해 보고 있기는 한데 str_chr 사용자 정의 함수로 입력 받은 문자열에서 찾는 문자열의 이전 문자들을 리턴시키려고 계속 해보는데 도저히 결론에 도달하기가 힘듦니다. 어떻게 코드를 손봐야할지 조언좀 해주실수 있을까요?

    하필 조건중에 저기 if, else 문을 꼭 사용하라고 하더라구요. 저 조건때문에 너무 어렵습니다.