strtok를 사용할 때 Segfault

코트니 페넬

이 프로그램은 "printPigWord (temp);"를 주석 처리하면 잘 작동합니다. 그리고 그것은 문제없이 단어를 토큰 화하지만 그 줄을 다시 추가하면 다음 토큰을 수행하지 않습니다. 1 개의 "pig latin"단어를 인쇄하고 main으로 돌아간 다음 세분화 오류가 발생합니다. 그 원인이 무엇인지 모르겠습니다.

int main (void){
    char phrase[50];
    char *token, c, temp[20];
    int i=0;

    printf("Enter a phrase to be translated into pig latin: ");
    c = getchar();
    while( c != '\n'){
        phrase[i++] = c;
        c = getchar();
    }
    phrase[i] = '\0';

    token = strtok(phrase, " ");

    while(token != NULL){
        strcpy(temp, token);
        printPigWord(temp);
        token = strtok(NULL, " ");

    }

    return 0; /*Successful completion*/
}

void printPigWord(char token[20]){
    char first[1];
    char temp[20];

    /*save first letter */
    strncpy(first, token, 1);
    first[1] = '\0';

    /*add ay to end of first letter*/
    strcat(first, "ay");

    /*remove first letter of token*/
    strcpy(temp, &token[1]);

    /*add first letter+ay to end of token*/
    strcat(temp, first);

    /*print out token*/
    printf("%s\n", temp);

}
pbhd

Hmpf. 첫 번째는 길이가 1 자입니다. 이것에 연결할 수 없습니다. 그렇지 않으면 다른 것을 덮어 씁니다 (예 : temp) ...

first[1] = '\0'; // already out of boundes

/*add ay to end of first letter*/
strcat(first, "ay"); // again, first can carry only one char

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

LinkedList를 반복 할 때 SegFault

분류에서Dev

GNU Assember를 사용하여 syscall을 수행 할 때 Segfault

분류에서Dev

strtok를 사용하는 동안 segfault를 일으키는 strcpy

분류에서Dev

strtok를 사용하는 동안 segfault를 일으키는 strcpy

분류에서Dev

scanf를 사용하여 큰 문자열을 읽을 때 SegFault / Abort

분류에서Dev

C에서 segfault를 방지하는 방법 (잘못된 유형의 인수를 사용할 때)

분류에서Dev

.C가 아닌 .Call을 사용하여 C ++ 함수를 호출 할 때 왜 segfault가 발생합니까?

분류에서Dev

컴파일러 최적화와 함께 std :: function 클래스 멤버를 사용할 때 Segfault

분류에서Dev

C-fgets는 char 배열을 사용할 때 신비하게 segfault를 발생시킵니다.

분류에서Dev

벡터에 std :: thread를 할당 할 때 segfault <std :: thread>

분류에서Dev

벡터를 벡터로 변환 할 때의 Segfault <vector <complex >>

분류에서Dev

R에 mgcv 패키지를 설치할 때 Segfault

분류에서Dev

Debian Stretch를 사용한 Segfault

분류에서Dev

인덱스에서 참조 할 때 segfault

분류에서Dev

문자열을 편집 할 때 Segfault?

분류에서Dev

정수 배열에 액세스 할 때 왜 즉시 segfault를 수행합니까?

분류에서Dev

대규모 어레이를 동적으로 초기화 할 때 Segfault 11

분류에서Dev

큐에 요소를 추가 할 때 C. Segfault에서 큐 디자인

분류에서Dev

50,000 개의 정점이있는 트리를 처리 할 때 Graphviz (neato) segfault

분류에서Dev

venv를 사용할 때 ModuleNotFoundError

분류에서Dev

@ViewScoped를 사용할 때 ViewExpiredException

분류에서Dev

ListView를 사용할 때 NoSuchMethodError

분류에서Dev

ListView를 사용할 때 NullPointerException

분류에서Dev

asyncTask를 사용할 때 NullPointer

분류에서Dev

Hibernate를 사용할 때 CommunicationsException

분류에서Dev

memcmp를 사용하는 동안 Segfault

분류에서Dev

memcmp ()를 사용하는 동안 Segfault

분류에서Dev

긴 정수를 사용하는 C segfault

분류에서Dev

CD를 사용할 때 / 사용

Related 관련 기사

  1. 1

    LinkedList를 반복 할 때 SegFault

  2. 2

    GNU Assember를 사용하여 syscall을 수행 할 때 Segfault

  3. 3

    strtok를 사용하는 동안 segfault를 일으키는 strcpy

  4. 4

    strtok를 사용하는 동안 segfault를 일으키는 strcpy

  5. 5

    scanf를 사용하여 큰 문자열을 읽을 때 SegFault / Abort

  6. 6

    C에서 segfault를 방지하는 방법 (잘못된 유형의 인수를 사용할 때)

  7. 7

    .C가 아닌 .Call을 사용하여 C ++ 함수를 호출 할 때 왜 segfault가 발생합니까?

  8. 8

    컴파일러 최적화와 함께 std :: function 클래스 멤버를 사용할 때 Segfault

  9. 9

    C-fgets는 char 배열을 사용할 때 신비하게 segfault를 발생시킵니다.

  10. 10

    벡터에 std :: thread를 할당 할 때 segfault <std :: thread>

  11. 11

    벡터를 벡터로 변환 할 때의 Segfault <vector <complex >>

  12. 12

    R에 mgcv 패키지를 설치할 때 Segfault

  13. 13

    Debian Stretch를 사용한 Segfault

  14. 14

    인덱스에서 참조 할 때 segfault

  15. 15

    문자열을 편집 할 때 Segfault?

  16. 16

    정수 배열에 액세스 할 때 왜 즉시 segfault를 수행합니까?

  17. 17

    대규모 어레이를 동적으로 초기화 할 때 Segfault 11

  18. 18

    큐에 요소를 추가 할 때 C. Segfault에서 큐 디자인

  19. 19

    50,000 개의 정점이있는 트리를 처리 할 때 Graphviz (neato) segfault

  20. 20

    venv를 사용할 때 ModuleNotFoundError

  21. 21

    @ViewScoped를 사용할 때 ViewExpiredException

  22. 22

    ListView를 사용할 때 NoSuchMethodError

  23. 23

    ListView를 사용할 때 NullPointerException

  24. 24

    asyncTask를 사용할 때 NullPointer

  25. 25

    Hibernate를 사용할 때 CommunicationsException

  26. 26

    memcmp를 사용하는 동안 Segfault

  27. 27

    memcmp ()를 사용하는 동안 Segfault

  28. 28

    긴 정수를 사용하는 C segfault

  29. 29

    CD를 사용할 때 / 사용

뜨겁다태그

보관