데이비드 J. 마란 : 내가 좋아하는 거라고 가정 프롬프트 프로그램을 구현하는 다음 문자열에 대한 사용자 및 진행 입력을 활용하기 위해, 모든 소문자로 변환 그들은 대문자로 입력해야. 그럼, 가서하자 해당 프로그램을 구현합니다. 

의 첫 번째 cs50.h는 다음에 포함하자 으로는 stdio.h에 있습니다. 그래서 우리는, strlen을 사용할 수있는 의는 string.h에 포함 할 수 있습니다. 

의 다음 주 같은 주요 int 무효를 선언하자 과의 지금하라는 메시지를 계속하자 문자열에 대한 사용자. printf의, 우리도을 요청하게 일부 입력하십시오. 이제 문자열을 선언하자 - 우리는이야 전화 할게 - 그 안에 호출의 결과를 저장 CS50 라이브러리 기능하는 GetString. 

의 지금은 각각의 반복으로 진행하자 의, 대문자의 문자 우리가 보는 모든 소문자. INT, 나는 0을 얻는다. 의는 또한 동일한 것으로 N을 선언하자 의의 문자열 길이 우리가 할 수 있도록 N 때까지의 최대 반복, 의 길이, 그리고 각 반복 증분 I. 

그리고이 루프의 내부하자 첫 번째 검사는 현재 문자입니다 - 의의 i 번째 문자, 말하자면 - 소문자. 발 브래킷 난보다 크거나 같으면 소문자, 그것은 이하의 수 보다 소문자 Z와 동일 - 이제 우리는 소문자로 변환 할 경우 대문자 편지, 첫 리콜 ASCII에서 소문자는 97입니다 그리고 대문자 A는 65이다. 한편, 소문자 (B)은 98이며 그리고 대문자 B (66)이다. 

우리는 그 패턴을보고 계속하는 경우에, 이 부분에 대해서는 소문자 편지는 높은 항상 32 값입니다 대문자보다. 그래서 우리는 소문자로 변환하려면 대문자로, 그것은해야 빼기, 정말 충분 사용자의 입력 32. 또는 더 일반적으로, 그냥 빼기 그 소문자와의 차이 자본 A. 

그것을 표현하는 방법? 그럼, 코드​​에서 그것을 할 수 있습니다. 인쇄에 printf와, 견적, 끝 맺다 "%의 C" 다음에 현재 문자, 의 부류 나 마이너스에있어 어떤 인쇄 소문자를 수행 한 결과 마이너스 세미콜론을 대문자. 즉,이 괄호 표현, 작은​​ 마이너스 큰이며, 에서 우리에게 돌아 갈 그 날 (32)의 말. 하지만 기억할 필요가 없습니다 그것은 32 있다고. 나는 컴퓨터가 파악하도록 할 수 있습니다 무엇 소문자의 차이 자본이다. 

한편, 한 번 나는, 그 차이를 알 수 나는들에서 뺄 수 있습니다 무엇을 가지고 갈 것이다 브래킷 나는, 어떤 에 아마 소문자 낮은 값으로, 매핑, 즉 값 대문자 상. 컴파일의 지금 저장할 수 있습니다, 이 프로그램을 실행합니다. 도트 슬래시를 대문자로 대문자로합니다. 그리고 내 입력은 인사 할 것이다. 그리고 거기에 우리는여보세요,이. 

지금 내 프롬프트에서 일반적으로 인정 하듯이,이다 우리는했습니다 조금 못생긴 때문에 인쇄 한 비트를 생략. 그리고 이제 다시 가서 그 추가 할 수 있습니다. 이 프로그램의 바로 아래쪽에, 매우 간단하고, 대부분에있어 심미적 인 목적의 printf를 추가하는 것, 인용을 끝 맺다 백 슬래시 명. 이제이 파일을 다시 저장하자 다시 실행을 다시 컴파일합니다. 

활용할 수 있도록, 점 슬래시 활용. 또, 입력 I는 "안녕하세요"를 제공합니다 모두 소문자로 현재, 입력을 명중 와 "안녕하세요,"훨씬 더 깔끔하게 인쇄.