c语言字符串转换为数组
㈠ C语言读取中间字符然后分割成数组
//下面定义的num数组空间只有100,根据情况来调整,保证够用,或者动态分配内存。str是要输入的字符串,可以从文件中读入,下面主要是演示字符串的分隔转换。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *tmp, *pstr, str[] = "READ123|456|789**";//读到的字符串
int num[100], len = 0;
char *token;
//校验READ并跳过READ
pstr = strstr(str, "READ");
if (pstr != str)
{
printf("data error!");
return;
}
pstr += 4;
//校验结尾的**并去掉后面的**
tmp = strstr(pstr, "**");
if (!tmp||strlen(tmp)!=2)
{
printf("data error!");
return;
}
*tmp = 0;
token = strtok(pstr, "|");
while (token)
{
num[len++] = atol(token);
token = strtok(NULL, "|");
}
//运行到这里,全部转换并保存在num数组,有效长度为len的值。
for(int i=0; i<len; i++)
{
printf("num[%d]=%d\n", i, num[i]);
}
}
㈡ C语言中,字符串怎么转换为int数组
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<conio.h>
voidmain(){
intexc_n(charch[]);intpnum=0;
do{//套用了我之前写的一个转换函数,输出有点勉强。。。(固定输出头0x0...)
charch[10]={0};charspr[2]={0};//分隔输入
printf("inputthestringofnum. 不得不说下,每次输入一个数据,按'x'可以结束程序 ");
scanf("%s",&ch);
printf("0x0%x ",pnum=exc_n(ch));
//printf("%x",pnum);
}while(getch()!='x');
}
//该函数将字符串型数字与整型数字单向转换
intexc_n(charch[]){//,longlnum){
intsize=0;intnum=0;
if(sizeof(ch[0])>0)
size=strlen(ch);inti=0;
while(size>=0){
if(ch[size]>47&&ch[size]<58){num=num+(ch[size]-48)*(int)pow(10,i++);
}
size--;
//
}
returnnum;
}
㈢ 用C语言进行字符串到数组的转化
#include <stdio.h>
#include <string.h>//为strlen()函数提抄供原型
int main()
{ char ch[100];
int i,length;
int n_number=0,m_number=0;
printf("请输入字符串: ");
gets(ch);//获取输入,并存入数组中
length=strlen(ch);//计算输入字符串的长度
for(i=0;i<length;i++)
{
if(ch[i]>='0'&&ch[i]<='9')//判断是否为数字
{
n_number++;
}
if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z')//判断是否为字母
{
m_number++;
}
}
printf("输入的字符串为: ");
puts(ch);//输出存入数组的字符串
printf("字符串中数字的个数=%d,字母的个数=%d\n",n_number,m_number);
return 0;
}