输入一个字符串,统计其中数字字符个数
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char str[80];
printf("Enter a string:");
i = 0;
while((str[i] = getchar()) != '\n') i++;
str[i] = '\0';
int count = 0;
for(i = 0; str[i] != '\0'; i++)
{
if(str[i] >= '0' && str[i] <= '9') count++;
}
printf("count = %d\n", count);
return 0;
}
输入字符串
提取其中所有的数字字符
将数字字符转化为一个十进制数输出
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char str[10];
printf("Enter a string:");
i = 0;
while((str[i] = getchar()) != '\n') i++;
str[i] = '\0';
for(i = 0; str[i] != '\0'; i++)
{
if(str[i] >= '0' && str[i] <= '9')
printf("%c", str[i]);
}
return 0;
}
进制转换
字符串结束标志:'#';
过滤去所有非十六进制字符,组成新的表示十六进制数字的字符串
输出该字符串
将其转化为十进制数后, 输出
#include <stdio.h>
int main()
{
char str[80], hexad[80];
/*input a string*/
printf("Enter a string:");
int i = 0;
while((str[i] = getchar()) != '#') i++;
str[i] = '\0';
/*过滤去非16进制字符串, 生成新字符串hexad*/
int k = 0;
for(i = 0; str[i] != '\0'; i++)
{
if(str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&&str[i]<='F')
{
hexad[k] = str[i];
k++;
}
}
hexad[k] = '\0';
/*输出十六进制新字符串*/
printf("New string:");
for(i=0; hexad[i] != '\0'; i++)
putchar(hexad[i]);
printf("\n");
/*转化为十进制数*/
long number = 0;
for(i=0; hexad[i] != '\0'; i++)
{
if(hexad[i]>='0'&&hexad[i]<='9')
number=number*16+hexad[i]-'0';
else if(hexad[i]>='A'&&hexad[i]<='F')
number=number*16+hexad[i]-'A'+10;
else if(hexad[i]>='a'&&hexad[i]<='f')
number=number*16+hexad[i]-'a'+10;
}
printf("Number=%ld\n",number);
return 0;
}