哪位高手能帮小弟我完成这个函数
谁能帮我完成这个函数?
谁能帮我完成这个函数?
char* str_min(const char* a_str,int m)
{
//这里写入函数内容。
}
参数a_str 是要处理的字符串,m是从字符串a_str从后消去的字符个数,让函数最后返回处理完的字符串。
例如: 当调用函数str_min("1111111111fff",3)后,我们最终得到处理完的结果字符串"1111111111"!
------解决方案--------------------
可以创建一个字符串指针rtchr,开辟内存,然后
strncpy(rtchr, a_str, strlen(a_str)-m);
return rtchr;
不过这样不好,需要在函数内开辟内存在函数外释放,不如改成这样
char* str_min(char* rtchr, const char* a_str,int m)
{
strncpy(rtchr, a_str, strlen(a_str)-m);
}
------解决方案--------------------
谁能帮我完成这个函数?
char* str_min(const char* a_str,int m)
{
//这里写入函数内容。
}
参数a_str 是要处理的字符串,m是从字符串a_str从后消去的字符个数,让函数最后返回处理完的字符串。
例如: 当调用函数str_min("1111111111fff",3)后,我们最终得到处理完的结果字符串"1111111111"!
------解决方案--------------------
可以创建一个字符串指针rtchr,开辟内存,然后
strncpy(rtchr, a_str, strlen(a_str)-m);
return rtchr;
不过这样不好,需要在函数内开辟内存在函数外释放,不如改成这样
char* str_min(char* rtchr, const char* a_str,int m)
{
strncpy(rtchr, a_str, strlen(a_str)-m);
}
------解决方案--------------------
- C/C++ code
char* str_min( char* a_str,int m) { //这里写入函数内容。 a_str += strlen(a_str) - m; *a_str = 0; return a_str; }
------解决方案--------------------
CString strTemp = a_str;
strTemp = strTemp.Left(strTemp.GetLength() - m);
return strTemp;
------解决方案--------------------
可以把char*转化为字符串,然后调用left();
CString str(char);
CString strLeft = str.Left(str.GetLength() -3);
------解决方案--------------------
我上面的代码有问题,改变如下:
- C/C++ code
char* str_min( char* a_str,int m) { //这里写入函数内容。 char * pStr = a_str; a_str += strlen(a_str) - m; *a_str = 0; return pStr; }