读书人

c语言中的包含大写字母和数字的混合字

发布时间: 2012-02-26 20:19:44 作者: rapoo

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);


[解决办法]
探讨

凑活一下吧
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……

读书人网 >C语言

热点推荐