C ++에서 char, char *, int, 문자열 변환 함수 및 문자열 변환 함수

1. Char에서 int로, int에서 char
1.1로, char에서 int로 :

char a = '1';
int b = a - '0'; // b = 1;

1.2, int에서 char로 :

int a = 1;
char b = a + '0'; // b = '1';

2. Char star, char to string 및 strng to char star, char
2.1, char star, char to string :

char* ptr = "abcd";
string s(ptr); // s = "abcd";

char c = 'a';
string s2;
s2 += c; // s2 = "c";

2.2. strng를 char star, char로 변환 :

string s = "abc";
char* ptr = const_cast<char*>(s.c_str()); // ptr = "abc";

string s = "a";
char c = s[0]; // c = 'a';

3. Int를 문자열로, 문자열을 int
3.1로, int를 문자열로 :

int a = 23;
string s = to_string(a); // s = "23";

3.2, 문자열을 정수로 :

string s = "123";
int a = atoi(s.c_str()); // a = 123;

4. 문자열의
함수 프로토 타입 을 다른 16 진수 (strtol)로 :

long int strtol (const char* str, char** endptr, int base);

각 매개 변수의 의미 : 변환
str할 문자
enptr는 변환 할 수없는 첫 번째 문자의 위치에 대한 포인터입니다. endptr이 NULL이 아니면 조건을 충족하지 않고 종료되는 문자 포인터가 endptr에 의해 반환됩니다. NULL, 포인터가 반환되지 않습니다.
base밑수는 10 진수로 변환 된 숫자를 의미합니다.

char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd; // pEnd不为null
long int li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10); // 2001
li2 = strtol (pEnd,&pEnd,16); // 6340800
li3 = strtol (pEnd,&pEnd,2); // -3624224
li4 = strtol (pEnd,NULL,0); // 7340031

참조 : cplusplus 공식 정보
strtol 함수 사용

요약하자면 :

1. 이들은 프로그래밍 질문을하고 입력 데이터를 처리 할 때 일반적으로 사용되며 염두에 두어야합니다.

추천

출처blog.csdn.net/qq_33726635/article/details/107292795