从一个字符串中提取子字符串的问题
#include<stdio.h>#include<stdlib.h>
/*
从一个字符串中提取它的子字符串,但是提取的长度不是有原字符串的长度决定而是由len(它的值非nul字符)的值决定的,不知道咋回事当len的值大于原字符串的长度 时它输出完最后一个字符时没有停止,而继续从原字符串第一个字符继续输出,直到len的值为0
*/
int substr(char dst[],char src[],int start,int len)//start为开始复制时的位置
{
int src_index,dst_index;
dst_index=0;
while(len>0&&start>=0)
{
for(src_index=0;src_index<start&&src[src_index]!='\0';src_index++);
while(len>0&&src[src_index]!='\0')/*为什么src[src_index]结束时还继续复制呢?*/
{
dst[dst_index]=src[src_index];
src_index++;
dst_index++;
len--;
}
}
dst[dst_index]='\0';
return dst_index;
}
int main()
{
char str1[20];
char str2[20];
int len,start;
int Len;
printf("please input the str1\n");
scanf("%s",str1);
printf("enter the values:\n");
scanf("%d%d",&start,&len);
Len=substr(str2,str1,start,len);
printf("the len of str2 is %d\n",Len);
puts(str2);
putchar(10);
return EXIT_SUCCESS;
}
遇到的问题: 不知道咋回事,遇到的问题已经标注出来了,大家给看下吧