C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。 头文件:stdlibh 函数原型:int atoi(const char nptr); (另外两个类似) 举个例子: char str="123"; int num=atoi(str); 执行后,num的值被初始化为123。
C语言中,可以使用atoi函数将字符串转换为数字,如atoi("123")可以得到数字123。 atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。 如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回0。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。C语言中数字转化为字符
。
从数字组成的字符串转化为十进制数步骤如下: 1、挨个读取数组,从第0位开始 2、将字符转化为数字。比如从'1'转化为1。可以参考ASCII码表,字符'0'是48,所以只需要将字符减去48即可。 3、将前一个计算出的十进制数(初始化为0)乘以10加上第二步计算出的数字。 4、循环1-3步直到读取完数组内所有内容。 之所以这样算需要举个例子:比如数组内内容是'1','5','9'。计算结果肯定是159。这个159等于1100+510+91。我们定义变量S来作为结果(初始化为0)。 按照上述步骤计算: 1、int n='1'-48(=1); 2、s=s10+n(=1); 3、n='5'-48。
思路:统计字符串中每个数字字符出现的个数可以先定义一个整数数组a大小是10,依次保存0-9字符出现个数,遍历字符串,判断该字符是否是数字字符,如果是对应的数组元素自加1。
参考代码:
#include<stdioh>#include<stringh>
int main()
{
char a[100];
int i,n,num[10];
gets(a);
n=strlen(a);
for(i=0;i<10;i++){
num[i]=0;
}
for(i=0;i<n;i++)
if(a[i]>='0'&&a[i]<='9')
num[a[i]-'0']++;
for(i=0;i<10;i++)
printf("%d ",num[i]);
return 0;
}
/
输出:
ads51df0a3df9d87f89ads4fd0f3adsf21sdf47d89f9adsf65as1d2f3asd
2 3 2 3 2 2 1 2 3 4
/
是这样的——
//#include "stdafxh"//vc++60加上这一行#include "stdioh"
#include "stdlibh"
#include "timeh"
int main(void){
char a[][5]={"北京","上海","武汉","天津","合肥","台湾","香港","澳门","贵州","西安"};
int i,j;
srand((unsigned)time(NULL));
for(i=rand()%10,j=i+5;i<j;printf("%s\n",a[i++]));
return 0;
}
还是这样的——
事出匆忙,这里只搞了一个大写的,如果你还有什么要求,我可以改或者讲解给你,还有这个程序是大二水平的
#include<stdioh>
#include<malloch>
#include<timeh>
#include<stdlibh>
#define NULL 0
struct ch
{
char cha;
struct chnext;
};
struct chhead=NULL,p;
void main()
{
int len,i,c;
char ch=0;
srand( (unsigned)time( NULL ));
len=1+rand()%16;
for(i=0;i<len;++i)
{
if(head==NULL)
{
head=(struct ch)malloc(sizeof(struct ch));
c=65+rand()%26;
head->cha=c;
head->next=NULL;
p=head;
}
else
{
p->next=(struct ch)malloc(sizeof(struct ch));
p=p->next;
c=65+rand()%26;
p->cha=c;
p->next=NULL;
}
}
for(p=head;p!=NULL;p=p->next)
printf("%c",p->cha);
}
#include<cstdio>
#include<cstring>
#include<cstdlib> //随机函数包含在这个里面
#include<ctime> //这是时间库
using namespace std;
int main(){
freopen("randout","w",stdout);
for(int i=1;i<=1000;i++){
for(int j=1;j<=10;j++){
srand(time(0)/这里调用了系统时间,其实没多大用/+i+j+iji);//这相当于向随机中添加种子,添加的越复杂越好,种子要能每次不一样最好;
printf("%c",rand()%26+'A'); //这个 rand()便是生成的随机数,用 %26+'A' 可以保证它在'A'到'Z'的范围内
}
printf("\n");
}
return 0;
}
这是所谓的伪随机办法,但基本够用了,用一个能运行的打开运行,然后就会输出到randout文件中去
以上就是关于如何从二十个随机字符串中,找出其中能转换成数字的字符串,并按照从小到大排列c语言编程。全部的内容,包括:如何从二十个随机字符串中,找出其中能转换成数字的字符串,并按照从小到大排列c语言编程。、c语言 随机输入一个字符串,统计该串中每个数字字符(0,1,2,3,4,5,6,7, 8,9)出现的次数。、C语言编程实现:从我设定好的字符串数组中,随机连续输出5个字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)