-2
ASCII 테이블을 사용하여 모든 소문자를 대문자로 변환하려고합니다! 거래하기가 매우 쉬우 며 코드를 파악했습니다. 문제는 단어 사이에 공백이 있으면 프로그램은 첫 번째 단어 만 변경하고 공백 이후에는 아무 것도 인쇄하지 않는다는 것입니다.ASCII를 사용하여 소문자를 대문자로 변환
예
말씀 : 안드레아스 제공합니다 : ANDREAS
말씀 : TeSt123Ha을 제공합니다 : TEST123HA
하지만!
단어 : Hello 45 제공 : HELLO
아무 것도 인쇄하지 않습니다!
ASCII 테이블의 공간은 32와 같습니다. 코드를 읽으면 현재 코드가 97에서 122 사이가 아니라면 코드를 변경하지 마십시오.
하지만 여전히 작동하지 않습니다!
char currentletter;
int i;
for (i=0; i<49; i++)
{
currentletter = str[i];
if ((currentletter > 96) && (currentletter < 123))
{
char newletter;
newletter = currentletter - 32;
str[i] = newletter;
}
else
{
str[i] = currentletter;
}
}
printf("%s\n", str);
- 나는 심지어 거기에있는 공간 후 단어를 내기 할 것이다 ('str'입니다 printf ("% s \ n", str);'* case conversion code 이전? '을 수행하면 어떻게됩니까? –
@MichaelBurr : 좋은 지적입니다. 'scanf ("% s", str)'는 단일 단어 입력을위한 또 다른 경쟁자입니다. –
'else'브랜치는 문제의 원인이 아니지만 완전히 중복됩니다. – 5gon12eder