相当无语:字符串的疑惑
为什么写了个字符串的函数,两个差不多的函数差距怎么就这么大呢?
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void substring(char *s,int first,int end)
{
char *t=new char[end-first];
int j=0;
for(int i=first,j=0;i<end;++i,++j)
t[j]=s[i];
t[j] = '\0';
cout<<t;
delete []t;
}
void substring()
{
char *s = "Hello world";
char t[10];
int i, j;
for (i=2, j=0; i<6; i++, j++)
t[j] = s[i];
t[j] = '\0';
cout << "s的子字串[2,6)是" << t<<endl;
}
int main()
{
char *a="hello world!";
substring() ;
substring(a,2,6);
}
第二个直接运行不出来,郁闷啊,谁能帮忙回答一下啊!!
修改了一下,原来是在最后一个字符上出了问题
char* substring(char *s,int first,int end)
{
char *t=new char[end-first+1];
int j=0,i=first;
while(i<end)
t[j++]=s[i++];
t[j] = '\0';
return t;
}
看来还是while比较给力!!

浙公网安备 33010602011771号