C 语言中怎样提取指定字符?

C语言中怎样提取指定字符:charstr1[30]="dwoieocisoeklikoi__abb"charstr2[60]="xejwoiwardwoieldkwieo... C 语言中怎样提取指定字符:
char str1[30]="dwoieocisoeklikoi__abb"
char str2[60]="xejwoiwardwoieldkwieow__amq"

我要提取"__a"前的所有字符:
结果是:
dwoieocisoeklikoi
xejwoiwardwoieldkwieow
char str1[30]="dwoieocisoeklikoi__abb"
char str2[60]="xejwoiwardwoieldkwieow_adwoieo__amq"
我要提取"__a"前的所有字符:
结果是:
dwoieocisoeklikoi
xejwoiwardwoieldkwieow_adwoieo
展开
 我来答
ytu_math
2010-10-01 · TA获得超过1558个赞
知道小有建树答主
回答量:784
采纳率:100%
帮助的人:805万
展开全部
1、先对源字符串检索是否存在子字符串"__a"
2、如果存在,肯定知道存在位置;
3、将源字符串从1开始到存在位置取出,即可。

函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: #include <string.h>
char *strstr(char *str1, char *str2);
程序例:

#include <stdio.h>
#include <string.h>

int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;

ptr = strstr(str1, str2);
printf("The substring is: %s\n", ptr);
return 0;
}

要返回第二个字符串在第一个的位置:

k=strstr(s1,s2)-s1+1; //长度

因此取 第一个字符串从长度为 k-1的字符即可。
char fmt[10];
char substr[100];

sprintf(fmt,"%ds",k-1);
sprintf(substr,fmt,str);即可。

#include<string.h>
main()
{

char fmt[10];
char substr[100];
char str1[30]="dwoieocisoeklikoi__abb"
char str2[60]="xejwoiwardwoieldkwieow__amq"
char str3[10]="__a";

k=strstr(str1,str3) - str1;
sprintf(fmt,"%ds",k);
sprintf(substr,fmt,str1);
printf("1 substring is %s",substr);

k=strstr(str2,str3) - str2;
sprintf(fmt,"%ds",k);
sprintf(substr,fmt,str2);
printf("2 substring is %s",substr);

}
xf小粉
2010-10-01 · TA获得超过592个赞
知道答主
回答量:47
采纳率:0%
帮助的人:47.6万
展开全部
#include "conio.h"
main()
{
char str1[30]="dwoieocisoeklikoi__abb";
char str2[60]="xejwoiwardwoieldkwieow__amq";

//要提取__a前的所有字符,你可以用一个循环体来一个一个字符的输出,当遇到_(ascii码为95,所以str1[i]-95(str1[i]等于下划线时,str1[i]-95==0,为假跳出循环))时就停止输出
short i=0;for(;i<30&&str1[i]-95;i++)
printf("%c",str1[i]);

printf("\n");//换行

for(i=0;i<60&&str2[i]-95;i++)
printf("%c",str2[i]);

getch();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huayu00
2010-10-01 · TA获得超过315个赞
知道答主
回答量:105
采纳率:0%
帮助的人:81.9万
展开全部
结合前面几位同学的算法,你改下算法:每个查询的字符串都要遍历完,每次遇到的 _a 位置都记录下来,要输出时,选最后一个_a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿四哥vlog
2021-03-30 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:607
采纳率:0%
帮助的人:28.3万
展开全部

C语言字符串的学习,输入指定字符串,并且计算字符串的位数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式