一个函数,要返回一串字符,该怎么做??

青松2 2013-11-26 08:32:41
比如一个函数,做字符识别,传入的是图像数据,返回的是识别后的字符串,函数原型是什么样的?

...全文
307 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2013-11-27
  • 打赏
  • 举报
回复

string saomiao(string img_path)
{
      string str;
//......扫描代码
       return str;
}
蜥蜴枪王 2013-11-27
  • 打赏
  • 举报
回复
如果你能确保解析出来的字符串数据最大也不会超过一个特定值,那你完全可以自己分配一个足够容纳的空间传进去,然后使用完毕之后,再自己负责释放. 或者就像1楼、2楼那样的传入一个可以动态增长的容器进去接收返回的数据.
兆帅 2013-11-27
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:
不晓得是不是没明白楼主的意思! 要么传参进来,要么分配堆空间,要么全局变量! 地址只要是有效的,都是可以返回的!
++
追_逐 2013-11-27
  • 打赏
  • 举报
回复
C函数库里面有个叫brk 和sbrk 的函数对。 malloc free 函数应该就是封装的这两个函数。 你可以去学学这两个函数怎么使用。 函数原型为: int brk(void *end_data_seqment); void *sbrk(intptr_t increment);
worldy 2013-11-27
  • 打赏
  • 举报
回复
镶入式一般内存有限但功能也单一,在代码中,你完全可以划分一片内存区做输入pBufIn,另一片做输出pBufOut,输入接收按顺序填入pBufIn,输出填入pBufOut; 函数可以定义为void TurnXXX(void)
lucifer886 2013-11-27
  • 打赏
  • 举报
回复
还是不太懂楼主的意思……传递个外部指针就去就行 char *get_string(char *buff, unsigned buffSize, char *image); 函数内部给buff赋值
青松2 2013-11-27
  • 打赏
  • 举报
回复
引用 5 楼 lhfslhfs 的回复:
[quote=引用 3 楼 worldy 的回复:] char* theFun(LPBYTE pPic,int size) 函数为识别结果申请内存,函数调用者负责释放内存
怪我没说清楚,这个函数是在嵌入式里面做,申请、释放内存不能用。该怎么做好? [/quote] 还有,必须用C语言
青松2 2013-11-27
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
char* theFun(LPBYTE pPic,int size) 函数为识别结果申请内存,函数调用者负责释放内存
怪我没说清楚,这个函数是在嵌入式里面做,申请、释放内存不能用。该怎么做好?
max_min_ 2013-11-27
  • 打赏
  • 举报
回复
不晓得是不是没明白楼主的意思! 要么传参进来,要么分配堆空间,要么全局变量! 地址只要是有效的,都是可以返回的!
anthow 2013-11-27
  • 打赏
  • 举报
回复
引用 2 楼 lg1544650023 的回复:
#include <iostream>
#include <vector>
using namespace std;

vector<char> get_chars(/*args*/)
{
	vector<char> cs;
	// fill cs
	return cs;
}

int main()
{
	return 0;
}
你的问题没提好把
返回局部变量??
lpcads 2013-11-27
  • 打赏
  • 举报
回复

//预先定义一个数组 output[size],存放输出结果。

int get_str(char *bitmap, char *output, int max_size);
//图像数据由char *bitmap传入;
//数据通过预先定义的数组 char *output传出;
//其中 max_size 为预先定义的数组output的大小,以防溢出;
//返回值为得到的字符串的字数,可以定义哨兵值为0或-1,表示识别出错
赵4老师 2013-11-27
  • 打赏
  • 举报
回复
string是C++不是C
赵4老师 2013-11-27
  • 打赏
  • 举报
回复
第4行后面漏了];
#define MAXSTRLEN 80
char *OCRstring(char *bitmap,int width,int height);
char *OCRstring(char *bitmap,int width,int height) {
 static char OCRs[MAXSTRLEN+1];
 //...
 return OCRs;
}
赵4老师 2013-11-27
  • 打赏
  • 举报
回复
#define MAXSTRLEN 80
char *OCRstring(char *bitmap,int width,int height);
char *OCRstring(char *bitmap,int width,int height) {
 static char OCRs[MAXSTRLEN+1
 //...
 return OCRs;
}
worldy 2013-11-27
  • 打赏
  • 举报
回复
char* theFun(LPBYTE pPic,int size) 函数为识别结果申请内存,函数调用者负责释放内存
sleeplacker 2013-11-26
  • 打赏
  • 举报
回复
#include <iostream>
#include <vector>
using namespace std;

vector<char> get_chars(/*args*/)
{
	vector<char> cs;
	// fill cs
	return cs;
}

int main()
{
	return 0;
}
你的问题没提好把
healer_kx 2013-11-26
  • 打赏
  • 举报
回复
std::string f(HBITMAP bitmap) ?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧