C语言截取字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言截取字符串相关的知识,希望对你有一定的参考价值。
求助如何字符串<1,2>,<3,4>,<4,5>中的'<' '>' ','去掉只留下数字存入int类型的数组中?谢谢!!!
这个你只能写个循环自己判断了,示例代码如下
char str[] = "<1,2>,<3,4>,<4,5>";int num[10];
int index = 0;
int i;
for(i=0;i<strlen(str);i++)
if(str[i]>=\'0\' && str[i]<=\'9\') //如果是字符 0-9
num[index++] = str[i] - \'0\'; //字符转换为数字,放到int类型的数组
追问
如果是的话没法转化成11的
参考技术A #include <ctype.h>#include <stdio.h>
int databuf[256];
int split_int(char *str)//字符筛选函数
int count=0;
while(*str!=0)
if(isalnum(*str))
databuf[count]=*str-'0';
count++;
str++;
else
str++;
return count;
int main(void)
char str[]="<1,2>,<3,4>,<5,6>,<7,8>";
int i,j;
j=split_int(str);
for(i=0;i<j;i++)
printf("%d=%d\\n",i,databuf[i]);
return 0;
追问
如果是的话是不好用的
追答/* */
#include "Stdio.h"
#include "Conio.h"
int databuf[256];
typedef enumFALSE,TRUE BOOL;
int split_int(char *str)
BOOL bStartNum=FALSE;/*标记数字开始*/
BOOL bEndNum=FALSE; /*标记数字结束*/
int tmp;
int count=0;
while(*str>0)
if(*str>='0'&&*str<='9')
if(bStartNum==FALSE)
bStartNum=TRUE;
bEndNum=FALSE;
tmp=*str-'0';
else
tmp=tmp*10+*str-'0';
else
bEndNum=TRUE;
if(bStartNum==TRUE&&bEndNum==TRUE)
databuf[count]=tmp;
bStartNum=FALSE;
count++;
str++;
return count;
int main(void)
char str[]="<1,2>,<3,4>,<5,6>,<7,8>,<11,11>,<123,234>";
int i,j;
j=split_int(str);
for(i=0;i<j;i++)
printf("%d=%d\\n",i,databuf[i]);
/* 此处添加你自己的代码 */
getch();
return 0;
str
=
"a
char:<abcdefgh>";
Cstring
m_First,m_second;
sscanf_s(str,
"%s<%s>",
&m_First,
&m_second);
大概就是这种意思。下面是百度百科里面关于sscanf的用法,你可以参考一下,很强大的。
C语言截取字符串将大写字母转换为小写字母。
将被操作字符串中的指定大写字母后的所有字母截取出来,将截取出来的所有字母转换为小写字母,将此字符串写入原来被操作字符串的地址中。
函数原型
int trans(char *str, char ch);
参数说明
str 为被操作的字符串首地址,字符串的元素全为大写字母;最终将转换好的字符串写入此地址中。
ch 为指定的大写字母,此大写字母在str中只出现一次;
返回值
0 操作成功,正常返回;
1 str为空,即str==NULL
比如:字符串”WEIWENDATA” 在字符’N’之后的的字符串为” DATA”;转换后的字符串”data”。
#include<string.h>
#include<math.h>
int trans(char *str, char ch)
int lon,i;
lon=strlen(str);
for(i=0;i<lon;i++)
if(str[i]==ch)
break;
i++;
for(;i<lon;i++)
str[i]+=32;
return 0;
int main(int argc,char *argv)
char str[20];
char ch;
printf("请输入你要输入的字符串:\n");
scanf("%s",str);
getchar();
printf("请输入你要转换的字母:\n");
scanf("%c",&ch);
trans(str, ch);
printf("最终结果是:\n");
printf("%s\n",str);
return 0;
参考技术B int trans(char *str, char ch)
int i, j;
for(i=0;*(str+i)!='\0';i++)
if(*(str+i)==ch)
break;
if(*(str+i)=='\0')
*str='\0';
return 1;
for(j=0,i=i+1;*(str+i)!='\0';i++,j++)
str[j]=*(str+i)-('A'-'a');
return 0;
追问
第二个for循环就是第16行做出来说少一个)在;之前。实在不知道怎么改呀。。
追答你把我代码拷贝过去编的?
我这里可以啊。
对呀。直接拷贝过去的。不知道怎么回事。。
追答你再仔细检查一下,是不是少个括号分号什么的。
本回答被提问者和网友采纳 参考技术C 是要我们写程序吗?问题是什么?追问对呀,问题是题目哦,
以上是关于C语言截取字符串的主要内容,如果未能解决你的问题,请参考以下文章