값을 추가하여 문자열의 문자를 변경하면 런타임 오류가 발생합니다.

송재호

문자 배열의 문자를 변경하는 코드를 만들려고합니다.

대부분의 코드가 잘 작동합니다. 하지만 대문자를 소문자로 (또는 그 반대로) 변경하려고하면 코드가 작동하지 않고 프로그램이 종료됩니다.

나는 포인터가 자체 또는 유사한 이유로 사용할 수 없기 때문이라고 생각합니다. 그러나 나는 올바른 이유를 지적 할 수 없다.

xy 문제라면 걱정이되는데, 내 과제이기 때문에 전체 문제를 업로드하고 싶지 않고 가능한 한 스스로 문제를 해결하고 싶은데, 옳다고 생각합니다. 프로그램을 배우는 방법.

#include <stdio.h>
#include <string.h>
int main(void){
    //initialize
    char *ae = "sample";
    // for (){}
    ae[0] -= 36;//at this point, program stops
    // tried ae[0] = ae[0] -36 ; *ae = *ae - 36; and so on...
    printf("%c", ae[0] - 36);
}

시간 내 주셔서 감사합니다:)

Anastaciu

이 표현은 ...

char *ae = "sample";

... 문자열 리터럴로 포인터를 초기화합니다. 이러한 포인터 는 읽기 전용이며 수정할 수 없습니다. 표현식 ae[0] -= 36;은이 문자열 리터럴의 첫 번째 문자를 변경하려고 시도하지만 이는 허용되지 않으며 정의되지 않은 동작을 유발 합니다.

대신 다음을 사용하십시오.

char ae[] = "sample";

또 다른 메모 36에서, 알파벳 문자에서 빼는 것은 적어도 ASCII 인코딩이 아닌 대문자로 변환되지 않습니다 32.

어쨌든, 이것은 당신이 사용할 수있는 매우 이식 할 수 없습니다 toupper()tolower()에서 <ctype.h>보다 강력한 옵션에 대한 라이브러리입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

열거 형에 << 연산자를 오버로딩하면 런타임 오류가 발생합니다.

분류에서Dev

awk에서 문자열 값을 인쇄하면 오류가 발생합니다.

분류에서Dev

JSON 문자열을 NSDate로 변환하면 오류가 발생합니다.

분류에서Dev

구조체에서 문자열을 사용하는 동안 런타임 오류가 발생하는 이유

분류에서Dev

C 문자열을 char *로 함수에 전달하면 런타임 오류가 발생하는 이유는 무엇입니까 (하지만 char []로 정의 된 C 문자열을 전달하는 것은 괜찮습니다)?

분류에서Dev

문자열 배열을 정렬하면 세그 오류가 발생합니다.

분류에서Dev

2D 문자열 배열에서 문자열의 문자를 변경하면 분할 오류가 발생합니다.

분류에서Dev

파이썬에서 문자열을 float로 변환하면 숫자가 문자와 숫자의 혼합으로 표시되는 오류가 발생합니다.

분류에서Dev

셀 범위를 선택하면 런타임 오류 '1004'가 발생합니다.

분류에서Dev

Julia DataFrames에서 문자열을 분할하면 오류가 발생합니다.

분류에서Dev

문자열에서 eval을 사용하면 오류가 발생합니다.

분류에서Dev

asprintf 문자열에 추가 int 변수를 추가하면 분할 오류가 발생합니다.

분류에서Dev

런타임시 문자열에 문자 추가 오류 변수가 초기화되지 않았을 수 있음

분류에서Dev

AGGREGATE 함수를 사용하여 배열에서 최대 값을 추출하면 오류가 발생합니다.

분류에서Dev

2 개의 바이너리 트리를 병합하는 동안 런타임 오류가 발생했습니다.

분류에서Dev

Access에서 사용하는 기본 암호화 유형을 변경하면 런타임 앱을 배포 할 때 호환성 문제가 발생합니까?

분류에서Dev

문자열의 첫 번째 문자를 인쇄하면 세그먼트 오류가 발생합니다.

분류에서Dev

벡터의 정수 내용을 문자열로 인쇄하면 분할 오류가 발생합니다

분류에서Dev

문자열을 평가하여 런타임에 함수를 만들 수 있습니까?

분류에서Dev

"문자열을 부동 소수점으로 변환 할 수 없음"오류가 발생하면서 두 행의 데이터를 플롯하려고합니다.

분류에서Dev

환경 변수를 숫자 값으로 설정하면 파이썬에서 오류가 발생합니다.

분류에서Dev

Python 3.4.4를 사용하여 데이터 프레임에서 문자열의 하위 문자열을 교체하는 동안 문제가 발생했습니다.

분류에서Dev

클래스 멤버 참조 변수를 반환하면 런타임 오류가 발생합니다.

분류에서Dev

게임을 Linux로 이식하려고하면 XInitThreads를 호출하면 구문 오류가 발생합니다.

분류에서Dev

오버로드 된 전역 new 연산자에서 정적 개체를 사용하면 코어 덤프 런타임 오류가 발생합니다.

분류에서Dev

변경 불가능할 때 프로토 타입을 사용하여 문자열에 메소드를 추가하려면 어떻게해야합니까?

분류에서Dev

날짜 시간 문자열을 구문 분석하면 인덱스 21에서 오류가 발생합니다.

분류에서Dev

문자열의 첫 번째와 마지막 문자를 바꾸면 세그 오류가 발생합니다.

분류에서Dev

노드가있는 ursa를 사용하여 문자열을 암호화하고 해독하면 디코딩 오류가 발생합니다.

Related 관련 기사

  1. 1

    열거 형에 << 연산자를 오버로딩하면 런타임 오류가 발생합니다.

  2. 2

    awk에서 문자열 값을 인쇄하면 오류가 발생합니다.

  3. 3

    JSON 문자열을 NSDate로 변환하면 오류가 발생합니다.

  4. 4

    구조체에서 문자열을 사용하는 동안 런타임 오류가 발생하는 이유

  5. 5

    C 문자열을 char *로 함수에 전달하면 런타임 오류가 발생하는 이유는 무엇입니까 (하지만 char []로 정의 된 C 문자열을 전달하는 것은 괜찮습니다)?

  6. 6

    문자열 배열을 정렬하면 세그 오류가 발생합니다.

  7. 7

    2D 문자열 배열에서 문자열의 문자를 변경하면 분할 오류가 발생합니다.

  8. 8

    파이썬에서 문자열을 float로 변환하면 숫자가 문자와 숫자의 혼합으로 표시되는 오류가 발생합니다.

  9. 9

    셀 범위를 선택하면 런타임 오류 '1004'가 발생합니다.

  10. 10

    Julia DataFrames에서 문자열을 분할하면 오류가 발생합니다.

  11. 11

    문자열에서 eval을 사용하면 오류가 발생합니다.

  12. 12

    asprintf 문자열에 추가 int 변수를 추가하면 분할 오류가 발생합니다.

  13. 13

    런타임시 문자열에 문자 추가 오류 변수가 초기화되지 않았을 수 있음

  14. 14

    AGGREGATE 함수를 사용하여 배열에서 최대 값을 추출하면 오류가 발생합니다.

  15. 15

    2 개의 바이너리 트리를 병합하는 동안 런타임 오류가 발생했습니다.

  16. 16

    Access에서 사용하는 기본 암호화 유형을 변경하면 런타임 앱을 배포 할 때 호환성 문제가 발생합니까?

  17. 17

    문자열의 첫 번째 문자를 인쇄하면 세그먼트 오류가 발생합니다.

  18. 18

    벡터의 정수 내용을 문자열로 인쇄하면 분할 오류가 발생합니다

  19. 19

    문자열을 평가하여 런타임에 함수를 만들 수 있습니까?

  20. 20

    "문자열을 부동 소수점으로 변환 할 수 없음"오류가 발생하면서 두 행의 데이터를 플롯하려고합니다.

  21. 21

    환경 변수를 숫자 값으로 설정하면 파이썬에서 오류가 발생합니다.

  22. 22

    Python 3.4.4를 사용하여 데이터 프레임에서 문자열의 하위 문자열을 교체하는 동안 문제가 발생했습니다.

  23. 23

    클래스 멤버 참조 변수를 반환하면 런타임 오류가 발생합니다.

  24. 24

    게임을 Linux로 이식하려고하면 XInitThreads를 호출하면 구문 오류가 발생합니다.

  25. 25

    오버로드 된 전역 new 연산자에서 정적 개체를 사용하면 코어 덤프 런타임 오류가 발생합니다.

  26. 26

    변경 불가능할 때 프로토 타입을 사용하여 문자열에 메소드를 추가하려면 어떻게해야합니까?

  27. 27

    날짜 시간 문자열을 구문 분석하면 인덱스 21에서 오류가 발생합니다.

  28. 28

    문자열의 첫 번째와 마지막 문자를 바꾸면 세그 오류가 발생합니다.

  29. 29

    노드가있는 ursa를 사용하여 문자열을 암호화하고 해독하면 디코딩 오류가 발생합니다.

뜨겁다태그

보관