본문 바로가기

프로그래밍/C

열혈 C 프로그래밍 Chapter21-2

문제 1

 적당한 길이의 문자열을 입력 받아서 그 안에 존재하는 숫자의 총 합을 계산해서 출력하는 프로그램을 작성해 보자. 예를 들어서 프로그램 사용자로부터 입력 받은 문자열이 "A15#43"이라 하면, 이 문자열 중 아라비아 숫자는 1, 5, 4, 3 이니, 1+5+4+3의 연산결과가 출력되어야 한다.





문제 2

 다음과 같이 총 3개의 배열을 선언한다.

char str1[20];

char str2[20];

char str3[40];

 그리고는 str1과 str2를 통해서 프로그램 사용자로부터 문자열을 입력 받되, fgets 함수호출을 통해서 입력 받는다. 이어서 str1에 저장된 문자열을 str3에 복사하고, str2에 저장된 문자열을 str3에 저장된 문자열의 뒤에 덧붙이자. 그리고 마지막으로 str3에 저장된 문자열을 출력하자. 다소 설명이 복잡했는데, 예를 들어서 str1과 str2에 저장된 문자열이 각각 다음과 같다면,

str1    "Simple"

str2    "String"

 str3에는 문자열 "SimpleString"이 저장되어야 한다. 그런데 여기서 한가지 주의해야 할 사항이 있다. fgets 함수를 통해서 문자열을 읽어 들이면 \n문자도 함께 읽혀지는데, 이는 문자열의 일부가 되지 않도록 해야 한다는 점이다. 쉽게 말해서 str1과 str2에 저장된 문자열에서 \n은 소멸시켜야 한다





문제 3

 프로그램 사용자로부터 이름과 나이를 다음의 형식에 맞춰서 하나의 문자열로 입력 받는다.

"이정선 29"

"한수정 7"

"오선주 17"

 이름은 세 글자가 아닐 수도 있고 영문으로 입력될 수도 있다. 단, 이름과 나이 사이에만 공백이 삽입되어야 한다. 이러한 형식으로 두 사람의 정보를 입력 받아서 이름과 나이가 각각 같은지 다른지를 판단하여 출력하는 프로그램을 작성해보자. 참고로 이 문제는 수준이 어느 정도 있는 문제이니 천천히 생각하여 해결하기 바란다.