2014-06-13 4 views
-1

나는 재미있게 C로 장난하고있다. 내 프로그램은 사용자가 정의하고자하는 단어를 입력하라는 메시지를 표시합니다. 그런 다음 내 프로그램은 CURL과 사전 API를 사용하여 정의를 반환합니다. 내 문제는 그 정의가 제대로 포맷되지 않았기 때문에 그렇게하고 싶다. 그게 내 질문으로 이어집니다.한 글자를 다른 글자로 바꾸기

문장의 첫 단어를 대문자로 입력해야합니다. 정의는 char * 형식입니다. 사용할 C 문자열 함수가 확실하지 않습니다.

내가 지금까지 한 것은 정의의 첫 번째 문자를 자체 char 변수로 복사하는 것입니다. 그런 다음 toupper()를 사용하여 대문자로 변환했습니다. 정의 문자열의 소문자를 어떻게 새로운 대문자로 바꿀 수 있는지 잘 모르겠습니다.

다음은 몇 가지 코드입니다.

char upperCase; 

strncpy(&upperCase, r, 1); //copy first char of definition to upperCase (to be converted to uppercase) 

printf("%c\n", toupper(upperCase)); //just prints the uppercase letter to make sure it works 


printf("%s\n", r); //print the definition 

r은 정의가있는 문자열입니다.

+0

지금까지 가지고있는 코드를 표시하지 않으시겠습니까? –

+0

http://stackoverflow.com/a/20036880/1067211 – Avery

+2

안녕하세요. 적절한 질문을 쓰는 방법에 대해서는 [ask]를 읽으십시오. 그렇게하면 더 나은 응답을 얻을 수 있습니다. ascii : – OldProgrammer

답변

3

당신은 문자열 안에있는 문자에 직접 작업 할 수 있습니다 식 r[0] 유형 char입니다 때문에이 작업을 수행 할 수 있습니다

r[0] = toupper(r[0]); 

. 또한 포인터에 대한 배열 구문을 사용할 수 있습니다. rchar* 인 경우에도 계속 배열로 처리하고 이라는 개별 char 콘텐츠를 참조 할 수 있습니다. 문자열의 첫 번째 문자는 r[0]이고, 두 번째 문자는 r[1]입니다.

+0

답변이 초보자에게 약간 혼란 스러울 수 있습니다. 아마'char str [100]'또는 비슷한 것이 더 좋다. 초보자는 코드를 문자 그대로 사용하면 세그먼트 오류에 대해 불평하기 시작할 수 있습니다. –

+0

@FiddlingBits OP가 이제 코드를 게시 했으므로 작업이 훨씬 간단 해졌습니다 :-) –

+0

Nikos에 감사드립니다. 완벽하게 작동합니다. – MortalMan

관련 문제