本人新手,学习从一个字符串取出一个子串,编译生成没问题,运行后显示“Debug Assertion Failed!”请问这个问题的原因是啥,如何解决啊?谢谢啦。
错误提示为:
程序如下:
#include <iostream>
#include<cstring>
using namespace std;
void chouqu(char* s, int start, int end, char* result);
int main()
{
const int len = 80;
char m[len + 1], prev = ' ';
cout << "请输入被抽取的字符串" << endl;
getchar();//该语句表示将要输入字符串,之前的回车不会被当成字符串的第一个元素而跳过cin.getline()函数
cin.getline(m, len + 1);
char* s = m;
char* ss = {};
chouqu(s,1,5,ss);
cout << "抽取结果为" << ss<< endl;
}
void chouqu(char* s, int start, int end, char* result)
{
int len = strlen(s);
if (start<0 || end<0 || start>len || end>len || start > end) {
cout << "参数错误" << endl;
result[0] = '\0';
return ;
}
//从*(s+start)开始,复制end-start+1个字符到result里
//strncpy(result, s + start, end - start + 1);//函数提示不安全,
strncpy_s(result, sizeof(result),s + start, end - start+1 );
result[end - start + 1] = '\0';
}
请问这个如何解决啊,