728x90
1.
#include <stdio.h>
int main(void)
{
char ch;
printf("문자를 하나 입력하세요 >> ");
ch = getchar();
printf("\n%c의 아스키 코드값은 십진수로 %d 입니다.", ch, ch);
return 0;
}
/*
문자를 하나 입력하세요 >> *
*의 아스키 코드값은 십진수로 42 입니다.
*/
2.
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch[30];
printf("한 단어를 입력하세요 >> ");
scanf("%s", ch); // scanf() : 문자열 표준입력
int len = strlen(ch); // len : 문자열 ch의 길이
printf("입력한 단어를 반대로 출력합니다 >> ");
for (int i = len-1 ; i >= 0; i--){ // 역순으로 출력
char a = ch[i];
putchar(a);
}
return 0;
}
/*
한 단어를 입력하세요 >> python
입력한 단어를 반대로 출력합니다 >> nohtyp
*/
3.
#include <stdio.h>
#include <string.h>
int main(void)
{
char input_line[100]; // 입력 문장을 저장할 배열 선언
printf("한줄의 문장을 입력하세요 >> \n");
gets(input_line); // 한줄 문장 입력 받아 input_line에 저장
char *delimiter = " "; // 구분자 : '공백'
char *ptoken = strtok(input_line, delimiter); // strtok()을 사용해 토큰을 추출
putchar('\n');
printf("입력한 각각의 단어를 반대로 출력합니다 >> \n");
while (ptoken){ // 반환할 토큰이 없으면 NULL 반환 되어 반복문 종료
char* out_word = ptoken;
int len = strlen(out_word);
for (int i = len-1 ; i >= 0; i--){ // 역순으로 출력
char a = out_word[i];
putchar(a);
}
putchar(' '); // 한 단어를 역순으로 출력하고 '공백' 출력
ptoken = strtok(NULL, delimiter); // 다음 토큰을 반환하기 위함
}
return 0;
}
/*
한줄의 문장을 입력하세요 >>
You should have the knowledge of the following C programming topics.
입력한 각각의 단어를 반대로 출력합니다 >>
uoY dluohs evah eht egdelwonk fo eht gniwollof C gnimmargorp .scipot
*/
4.
#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[100] = "C 언어 ", s2[] = "사랑합니다!";
int s1_len = strlen(s1); // 문자열 끝을 의미하는 '\0'가 위치한 index값
int s2_len = strlen(s2);
// 문자열 복사 함수인 memcpy() 이용하여,
// s1의 '\0'의 위치 부터 s2를 덮어 씌움
memcpy((s1 + s1_len), s2, s2_len);
printf("두 문자열을 붙인 결과: %s", s1);
return 0;
}
/*
두 문자열을 붙인 결과: C 언어 사랑합니다!
*/
5.
#include <stdio.h>
#include <string.h>
int main()
{
// 한글 숫자 정의 배열 생성
char K_num[10][4] = {"" ,"일", "이", "삼", "사", "오", "육", "칠", "팔", "구"};
char K_unit[4][4] = {"" , "십", "백", "천"};
char num[5]; // 입력 받을 정수 저장
printf("10000 보다 작은 정수 하나를 입력하세요 >>> ");
scanf("%s", num); // 표준입력
// 입력 숫자 길이 = 숫자 자리수 파악
int num_len = strlen(num);
char output[100] = ""; // 한글 문자열 저장 공간 생성 / 초기화
for (int i = 0; i < num_len; i++) { // 자릿수 만큼 반복
if(num[i] == 0){ // 0이 있는 자리수 패스
continue;
}
int tmp = (int)num[i] - 48; // 문자형 숫자 아스키 코드 - 48 = 해당 숫자
// strcat()를 사용하여 output뒤에 연결
strcat(output, K_num[tmp]);
strcat(output, K_unit[num_len - (i+1)]);
}
printf("입력한 정수는 [%s]입니다.", output);
return 0;
}
/*
10000 보다 작은 정수 하나를 입력하세요 >>> 7891
입력한 정수는 [칠천팔백구십일]입니다.
*/
6.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
char input[100];
char ch;
puts("영어 문장을 입력하세요 >> ");
gets(input);
puts("\n입력한 문자열에서 대문자와 소문자를 반대로 변환하면 >> ");
size_t size = sizeof(input) / sizeof(input[0]);
int i = 0;
do
{
ch = input[i];
// 문자가 대문자인 경우
if (isupper(ch)){
ch = tolower(ch);
}
else {
ch = toupper(ch);
}
printf("%c", ch);
i++;
} while(ch);
return 0;
}
/*
영어 문장을 입력하세요 >>
Join our newsletter for the lastest updates.
입력한 문자열에서 대문자와 소문자를 반대로 변환하면 >>
jOIN OUR NEWSLETTER FOR THE LASTEST UPDATES.
*/
7.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int toint(const char* str)
{
int size = strlen(str);
int output = 0, ten = 1;
for (int i = 1; i < size; i++){
ten *= 10;
}
for (int i = 0; i < size; i++){
output = output + (ten * ((int)str[i] - 48));
ten /= 10;
}
return output;
}
int main(void)
{
char ch[100];
printf("정수를 하나 입력 하세요 >> ");
scanf("%s", ch);
printf("%s\n\n", ch);
int int_ch1 = atoi(ch);
printf("먼저 함수 atoi()를 이용한 정수 >> %d\n", int_ch1);
printf("직접 구현한 함수를 이용한 정수 >> %d", toint(ch));
return 0;
}
/*
정수를 하나 입력 하세요 >> 1234
1234
먼저 함수 atoi()를 이용한 정수 >> 1234
직접 구현한 함수를 이용한 정수 >> 1234
*/
8. 생략
728x90
'C Programming' 카테고리의 다른 글
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 12. 문자와 문자열 (0) | 2022.07.08 |
---|---|
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 11. 포인터 기초 - 프로그래밍 연습 (0) | 2022.07.07 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 10. 변수 유효범위 프로그래밍 연습 (0) | 2022.07.07 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 10. 변수 유효범위 (0) | 2022.07.06 |
[C언어로 배우는 프로그래밍 기초 Perfect 3판] Chapter 14. 함수와 포인터 활용 (0) | 2022.07.04 |