C语言截取字符串

发布网友 发布时间:2022-04-22 03:47

我来回答

3个回答

热心网友 时间:2024-04-18 13:24

这个你只能写个循环自己判断了,示例代码如下

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的

热心网友 时间:2024-04-18 13:24

#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 enum{FALSE,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;

}


    

热心网友 时间:2024-04-18 13:25

Cstring
str
=
"a
char:<abcdefgh>";
Cstring
m_First,m_second;
sscanf_s(str,
"%s<%s>",
&m_First,
&m_second);
大概就是这种意思。下面是百度百科里面关于sscanf的用法,你可以参考一下,很强大的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com