을에서 이동 3 번 이동하고 출력은 'd'가됩니다.는 샤아 내가 문자를 다시 이동 도서관의 기능을 발견하고 내가 예를 들어 을 원하는대로 전달하기 위해 노력하고 C
이 함수가 '5'를 소비하고 앞으로 3으로 이동하려면 숫자가 3 번 이동하고 출력은 '8'이됩니다.
어떻게하면됩니까?
을에서 이동 3 번 이동하고 출력은 'd'가됩니다.는 샤아 내가 문자를 다시 이동 도서관의 기능을 발견하고 내가 예를 들어 을 원하는대로 전달하기 위해 노력하고 C
이 함수가 '5'를 소비하고 앞으로 3으로 이동하려면 숫자가 3 번 이동하고 출력은 '8'이됩니다.
어떻게하면됩니까?
을 감안할 때이 것을 무엇을 당신이 요구했습니다
char char_shift(char c, int n) {
return (char)(c + n);
}
당신이, 당신의 질문을 다시 (아마도 'Z'+ 1 = 'A'것을 의도) 뭔가 다른 의미가 있다면 ...
이렇게하려면 함수를 호출 할 필요가 없습니다. 문자에 숫자를 직접 추가하기 만하면됩니다. 예를 들어
:
'a' + 3
이 평가
C에서'd'
이것은 A-Z 문자에 대해 ASCII 및 문자 세트를 기반으로합니다. 이것은 현대 세계의 모든 관련 기계를 다루고 있습니다. EBCDIC은 큰 예외 일 것이다. 그러나 꽤 많이 멸종 된 것으로 보인다. –
@ liw.fi와 같은 주석을 다시 생각해 볼 수 있습니다.EBCDIC은 z/OS에서 잘 작동하며 모든 세계적 수준의 은행 및 기타 금융 기관을 운영합니다. 이 플랫폼에서 실행되는 캡슐화 된 UNIX에서도 (ASCII 순서에 따라 FOSS를 컴파일하는 데 어려움을 겪을 수 있습니다. zLinux는 ASCII를 사용하므로 더 낫습니다). – paxdiablo
으로하는 char
정수 타입 (int
등 및 long long int
).
이 값은 구현에 따라 다르지만 일반적으로 저장할 수있는 값 범위가 -128에서 127 또는 0에서 255로 제한된다는 점을 제외하면 다른 정수 유형과 동일하게 작동합니다. 예를 들어
:
char x = 3;
char y = 6;
int z;
z = x + y;
printf("z = %d\n", z); //prints z = 9
char
타입 (일반적 어레이의 일부) 대부분 텍스트를 저장하는 데 사용되는 각 문자를 숫자로 인코딩된다.
문자 및 문자열 상수는 편리합니다.
char x = 'A';
char str[] = "AAA";
따라서
char x = 65;
char str[] = {65, 65, 65, 0};
, 뭔가 동일합니다 : 우리가 가정하면 기계가 다음의 경우 자본 A는 65로 인코딩 된 (오늘날 거의 유비 쿼터스)를 ASCII 문자 집합을 사용 'X' + 6
처럼 완벽한 결과를 얻을 수 있습니다. 결과는 문자 인코딩에 따라 다릅니다. ASCII에서는 88 + 6
에 해당하며 94
인 것은 '^'
입니다.
질문은 실제로 불완전합니다 - 어떻게 오버플로/언더 플로우가 처리되어야합니까? 이것이 없으면 완전한 해결책을 제시 할 수 없습니다. –