위 표와 같이 ASCII 코드값에는 십진수(Dec.)기준으로
되어 있다.
/* 문자열이 숫자일 때 int로 변환 */
string s = "1234";
cout << stoi(s) ; // 1234
to_string(숫자);
int num1 = 10;
float num2 = 22.1f;
//to_string(int) -> int.
string str1 = to_string(num1);
//to_string(float) -> float.
cout << "to_string(num2) : " << to_string(num2) << endl;
/* 문자 -> 숫자 (아스키코드) */
char ch = 'A';
cout << atoi(ch); // 65
/* 문자에 숫자가 있을 때 int로 변환 */
char ch = '9';
cout << ch-'0'; // 9
/* 대문자는 정수 65 ~ 90까지 총 26개 */
int num = 90;
cout << (char)num; // Z
int num = 65;
cout << (char)num; // A
/* 소문자는 정수 97 ~ 122까지 총 26개 */
int num = 122;
cout << (char)num; // z
int num = 97;
cout << (char)num; // a
#include <stdio.h>
#include <string.h>
int main()
{
char input[50] = "";
char c;
printf("문자열을 입력하세요(예;\"Hello World! 123AbcDEf !@#@\"):");
gets_s(input);
for (int i = 0; i < strlen(input); i++)
{
c = input[i];
//입력한 문자가 소문자인가 ?
if (c >= 'a' && c <= 'z')
printf("%c 는 알파벳 소문자\n", c);
//그렇지 않으면 대문자인가 ?
else if (c >= 'A' && c <= 'Z')
printf("%c 는 알파벳 대문자\n", c);
//그렇지 않으면 숫자인가 ?
else if (c >= '0' && c <= '9')
printf("%c 는 숫자\n", c);
//그렇지 않으면 공백인가?
else if (c == ' ')
printf("%c 는 공백\n", c);
//기타인가 ?
else
printf("%c 는 기타 문자\n", c);
}
//알파벳 대문자는 소문자로, 소문자는 대문자로 변경
//ASCII 코드 테이블 참조
for (int i = 0; i < strlen(input); i++)
{
c = input[i];
if (c >= 'a' && c <= 'z')
putchar(c - 32);
else if (c >= 'A' && c <= 'Z')
putchar(c + 32);
else
putchar(c);
}
return 0;
}
출처: https://maincodes.tistory.com/68 [mainCodes:: 메인코즈]
ASCII 코드 테이블 상에서 알파벳 대문자는 65~90번, 소문자는 97~122번이다.
테이블을 보면 대문자와 소문자는 정확히 32 크기의 간격으로 서로 떨어져 있다.
따라서 소문자를 대문자로 변경하기 위해 c-32
를, 반대로 대문자를 소문자로 변경하기 위해서는 c+32
를 한다.
[C/C++] ASCII 코드값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기
C++ 형 변환 정리
[C++] to_string 함수에 대해서 (int to string)