c语言中的包含大写字母和数字的混合字符串转换为纯数字?
请问在C中如何将包含大写字母和数字的混合字符串转换为纯数字?
如,若打算将字符串“123AA6”转换成纯数字应该怎样操作,有什么具体的函数吗?或者是自己写怎样的函数才能做到?
如,将“123AA6”转换成整数12365656。因为A=65,所以就用65代替A,当然用其它数字代替A也可以。请高手指点,谢谢!
[解决办法]
- C/C++ code
for (int i = 0; i < strlen(str); i++){ if(str[i]> 'A' && str[i] <= 'Z') { str[i] = '0'; }}
[解决办法]
凑活一下吧
- C/C++ code
#include <stdio.h>#include <stdlib.h>#include <ctype.h>int main(void) { char *p = "123AA6a"; char *pw, *str = malloc(strlen(p) * 2 + 1); pw = str; while (*p) { if (isalpha(*p)) { sprintf(str++, "%d", *p / 10); sprintf(str, "%d", *p % 10); } else { *str = *p; } ++p; ++str; } *str = '\0'; printf("%s\n", pw); free(pw); return 0; }
[解决办法]
将“123AA6”转换成整数12365656,
怎么和
将“12365A6”转换成整数12365656,
区别呢?
如果要求一一对应,最好
将“123AA6”转换成“495051656554”,(要求源串中不含ASCII码>99的字符)
unsigned char s[]="123AA6";
unsigned char d[13];
int i,L;
L=strlen(s);
d[0]=0;
for (i=0;i<L;i++) {
sprintf(d,"%s%02d",d,s[i]%100);
}
printf("d=[%s]\n",d);
[解决办法]