c语言,提取字符串中的字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言,提取字符串中的字符相关的知识,希望对你有一定的参考价值。
参考技术A 用标准c库中的字符串操作函数就可以了需要#include
"string.h"
常用的函数有strcpy,strlen,strcmp,strchr,strstr等等 参考技术B 要include
定义一个字符串
string
s
=
"asd";
获取字符直接用
s[0]就行了本回答被提问者采纳
C语言提取字符串中的所有数字
#include<stdio.h>int
main()
char
str[1000];//保存读取到的字符串
long
sum=0,data[1000];
int
i=0,top=0;
printf("输入字符串:\n");
scanf("%s",str);
while(str[i]!='\0')//未到字符串末尾
if(str[i]>='0'&&str[i]<='9')//如果是数字
sum=sum*10+(str[i]-'0');//连续数字转换为数.
else
if(sum!=0)//保存这个数
data[top++]=sum;
sum=0;
i++;
if(sum!=0)//判断最后一个字符是否是数
data[top++]=sum;
printf("字符串中的数字是:\n");
i=0;
while(i<top)
printf("%ld",data[i]);
if(i<top-1)//不打印最后一个逗号
printf(",");
i++;
printf("\n");
system("pause");
return
0;
参考技术A #include <stdio.h>
void main()
char str[50];
int i=0; //i是数组下标. gets(str); //输入字符串.while(str[i]) //当数组元素不是字符串结束符时.执行while
if(str[i]>='0'&&str[i]<='9') //如果数组元素是数字. 就输出这个元素.
putchar(str[i]);
else
if(str[i-1]>='0'&&str[i-1]<='9') //否则判断前一个元素是不是数字.是的话输出一个空格.
printf(" ");
i++;
printf("\n");
参考技术B #include<stdio.h>
void main()
char str[10]='1','a','2','b','3','4','c','\0';
int i;
for(i=0;str[i]!='\0';i++)
if(str[i]>'0'&&str[i]<'9')
printf("%c\n",str[i]);
方法:从字符串第一个字符开始判断,通过for循环一个个的如果是当前字符,也就是str[i]比0大而且比9小,那么它就是数字,然后输出它就可以了。
两点需要注意:
(1)因为定义的是字符数组,所以printf输出的时候需要时%c单个字符的格式;
(2)if判断条件0和9要加单引号调用ASCII码,如果不加单引号就默认是ASCII码为0和9的字符而不是阿拉伯数字。
这个程序用的初始化,如果需要,可以编写用户输入数据的。 参考技术C string s = "sdka151221jfhj8js-9";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"-?[1-9]\d*");
System.Text.RegularExpressions.MatchCollection matchCollection= regex.Matches(s);
再根据你的业务需求处理matchCollection里的内容 参考技术D 挨个读取字符,对比0123456789 ,完毕。本回答被提问者采纳
以上是关于c语言,提取字符串中的字符的主要内容,如果未能解决你的问题,请参考以下文章
c语言中,如何将字符串数组中的52提取出来,并转换为int类型