#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int count(int n);
char* itoaa(int n);
void reverse(char *s, int length);
int atoii(char *s);
int _pow(int base, int n);
int main()
{
// 整数转字符串
int n;
scanf_s("%d", &n);
char *s = itoaa(n);
printf("%s\n", s);
// 字符串转整数
char s[20] = {'\0'};
scanf("%s",s);
int num = atoii(s);
printf("%d\n", num);
system("pause");
return 0;
}
// 计算整数 n 的位数
int count(int n)
{
int t = 0;
do {
n /= 10;
t++;
} while (n > 0);
return t;
}
// 整数转字符串
char* itoaa(int n) // 1234
{
int num =count(n);
char * chs = (char *)malloc(sizeof(char)*(num+1));
int i = 0,t;
do {
t= n % 10;
chs[i++] = t+'0';
n /= 10;
} while (n > 0);
reverse(chs, num);// 逆转,将 4321 逆转成 1234
chs[num] = '\0';
return chs;
}
// 将字符数组 s 颠倒
void reverse(char *s,int length ) {
int mid = length / 2;
for (int i = 0; i < mid; i++) {
char t = s[i];
s[i] = s[length - i-1];
s[length - i -1] = t;
}
}
// 字符串转整数 "123242"
int atoii(char *s) {
char *p = s;
while (*p) { p++; }
// *p == '\0'
int sum = 0,t=0;
p--;
while (p >= s) {
sum += ((*p - '0')* _pow(10, t));
t++;
p--;
}
return sum;
}
// 计算 base ^n
int _pow(int base, int n) {
int result = 1;
while (n > 0) {
result*=base;
n--;
}
return result;
}
C语言处理字符串整数转换
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...