用C语言怎么截取并计算一段字符串

1.输入一段意字符串,格式如: acb[123]c[1.2]ds[144]da[23] ....

2.再输入该字符串内的任意两个,如:acb,ds
3.计算并输出acb/ds结果

    strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, char *src, int n),把src所指字符串的前n个字节复制到dest所指的数组中,并返回指向dest的指针。
    函数原型char*strncpy(char*dest,char*src,size_tn);

    复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。如果src的前n个字节不含NULL字
    符,则结果不会以NULL字符结束。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重
    叠且dest必须有足够的空间来容纳src的字符长度+'\0'。

    atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。

    功 能: 将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。
    用 法: int atoi(const char *nptr);

    如果是浮点数或者其他类型可以使用atof,sscanf函数来进行字符串到数值的转换。

    例如:atoi(strncpy(dest,src+5,10))//把src字符串从第五位开始数10个的字符串转换为一个int值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
float match(char *str1,char *str2)
{
int i=0,j=0;
char b1[10]="";
char *s1=str1;//v11(123)v234(23.2)v345(321)
char *s2=str2;
strcat(s2,"(");//标识后插入'('
while((*s1!='\0')&&(j==0))
{
if((*s1)==(*s2))//如果完整串第一个字符与字串字符相等
{
i=0;
while(*(s1+i)==*(s2+i))//
{
i++;
}
if(*(s2+i)=='\0')//全部匹配完
{
while(*(s1+i)!=')')
{
b1[j]=*(s1+i);
i++;
j++;
}
}
else
{
while(*s1!=')')//不匹配直接跳到下一组标识前的')'
s1++;
s1++;//指针指到下一个标识第一个字符
}
}
else
{
while((*s1)!=')')//不匹配直接跳到下一组标识前的')'
s1++;
s1++;//指针指到下一个标识第一个字符
}

}
return atof(b1);
}本回答被提问者采纳
相似回答