C语言(不是C++)中如何从指定字符串中提取指定开始位置到指定结束位置的一个子串给数组?
如:charstr1[30]="dwew13lkoilesiwokdwok";charstr2[50]="e22dww_dwoiewolksdjfmmm"从str1中的前...
如: char str1[30]="dwew13lkoilesiwokdwok";
char str2[50]="e22dww_dwoiewolksdjfmmm"
从str1 中的前10个字符 结果是:dwew13lkoi
从str2中提取3-18的字符 结果是:2dww_dwoiewolksd
由于不太懂C,故请附上可执行的完整源代码,感谢! 展开
char str2[50]="e22dww_dwoiewolksdjfmmm"
从str1 中的前10个字符 结果是:dwew13lkoi
从str2中提取3-18的字符 结果是:2dww_dwoiewolksd
由于不太懂C,故请附上可执行的完整源代码,感谢! 展开
2个回答
展开全部
给你写一个简单的吧,写得复杂了,也不好,上次给你写的一个,采用了一些特殊方法,还不如直接写的,晕!
学程序,关键是学方法!
void substr(char *str1,char *str2,int start,int end)
{
int ii;
for (ii=start;ii<=end;ii++)
str1[ii-start]=str2[start-1];
str1[ii-start]='\0';
}
main()
{
char str1[30]="dwew13lkoilesiwokdwok";
char str2[50]="e22dww_dwoiewolksdjfmmm"
char str[50];
substr(str,str1,1,10);
printf("1--%s\n",str);
substr(str,str2,3,18);
printf("2--%s\n",str);
}
学程序,关键是学方法!
void substr(char *str1,char *str2,int start,int end)
{
int ii;
for (ii=start;ii<=end;ii++)
str1[ii-start]=str2[start-1];
str1[ii-start]='\0';
}
main()
{
char str1[30]="dwew13lkoilesiwokdwok";
char str2[50]="e22dww_dwoiewolksdjfmmm"
char str[50];
substr(str,str1,1,10);
printf("1--%s\n",str);
substr(str,str2,3,18);
printf("2--%s\n",str);
}
展开全部
1 #include <stdio.h>
2
3 char *sub_str(int start,int end,char *str)
4 {
5 char *sub = NULL;
6 int i = 0;
7 int j = 0;
8 sub = (char *)malloc(end-start);
9 if(NULL == str)
10 return NULL;
11 for(i = start;i<end;i++)
12 {
13 sub[j++] = str[i];
14 }
15
16 sub[end-start]='\0';
17
18 return sub;
19
20 }
21
22 int main ()
23 {
24 char str1[30]="dwew13lkoilesiwokdwok";
25
26 char *sub = NULL;
27
28 sub = sub_str(0,10,str1);
29
30 printf("%s\n",sub);
31
32 return 0;
33 }
2
3 char *sub_str(int start,int end,char *str)
4 {
5 char *sub = NULL;
6 int i = 0;
7 int j = 0;
8 sub = (char *)malloc(end-start);
9 if(NULL == str)
10 return NULL;
11 for(i = start;i<end;i++)
12 {
13 sub[j++] = str[i];
14 }
15
16 sub[end-start]='\0';
17
18 return sub;
19
20 }
21
22 int main ()
23 {
24 char str1[30]="dwew13lkoilesiwokdwok";
25
26 char *sub = NULL;
27
28 sub = sub_str(0,10,str1);
29
30 printf("%s\n",sub);
31
32 return 0;
33 }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询