VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 687|回复: 2

[已解决]函数如何返回指针字符串值  就用这种方式

[复制链接]
76_avatar_middle
最佳答案
0 
在线会员 发表于 2022-1-22 16:42:19 | 显示全部楼层 |阅读模式
using namespace std;
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd);
//函数功能 根据 INbbb的值(入参) 返回 字符串OUTccc(出参) 数值OUTddd(出参) 及字符个数OUTaaa(出参) 的值
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd)
{
        if (INbbb==0)// 情况1
        {
        *OUTddd = 888;
         OUTccc = "0000abcd\0";// 情况1 字符串个数不定
        }
        else if (INbbb==1)// 情况2
        {
        *OUTddd = 999;
        OUTccc = "1111abcd\0";// 情况2 字符串个数不定
        }
        else
        {
               
        }
        return strlen(OUTccc);// 返回字符的长度
}

int main()
{
        int aa = 0, bb = 1;

        char cc = 'A';
        //char *cc = "cCcC";
        //string cc = "runoob";

        int dd = 0;
        aa = OUTaaa(bb, &cc, &dd);// 调用函数

        //为什么函数 cc 总是返回A ,不返回函数中我给它的值

        cout << aa << "  是aa的值" << endl;
        cout << bb << "  是bb的值" << endl;
        cout << cc << "  是cc的值 字符个数是"<< endl;
        cout << dd << "  是dd的值" << endl;
        return 0;
}
最佳答案
46_avatar_small
2022-1-23 04:49:27
本帖最后由 screen_ok 于 2022-1-23 06:54 编辑

按照你的意图 OUTaaa 应该是这样的:

  1. int OUTaaa(int INbbb, char** OUTccc, int* OUTddd)
  2. {
  3.         if (INbbb == 0) // 情况1
  4.         {
  5.                 *OUTddd = 888;
  6.                 *OUTccc = "0000abcd"; // 情况1 字符串个数不定
  7.         }
  8.         else if (INbbb == 1) // 情况2
  9.         {
  10.                 *OUTddd = 999;
  11.                 *OUTccc = "1111abcd"; // 情况2 字符串个数不定
  12.         }
  13.         else
  14.         {
  15.         }
  16.         return strlen(*OUTccc); // 返回字符的长度
  17. }
  18. int main()
  19. {
  20.         int aa = 0, bb = 1;
  21.         char* cc = "runoob";
  22.         int dd = 0;
  23.         aa = OUTaaa(bb, &cc, &dd);// 调用函数
  24.         cout << aa << "  是aa的值" << endl;
  25.         cout << bb << "  是bb的值" << endl;
  26.         cout << cc << "  是cc的值 字符个数是"<< endl;
  27.         cout << dd << "  是dd的值" << endl;
  28.         return 0;
  29. }
复制代码


C程序中的字符串常量都是被放在 CONST 段中的,大概像这样:

CONST        SEGMENT
@runoob        DB 'runoob',00H
@0000abcd        DB '0000abcd', 00H
@1111abcd        DB '1111abcd', 00H
@s_cc                DB '  是cc的值 字符个数是', 00H
                        ……
CONST        ENDS

你的程序就是要给一个指针变量赋值。




上一篇:编译VC6.0代码报错
下一篇:win32DLL工程, 定时 TCP发送字符串 编译不通过
45_avatar_middle
最佳答案
1 
在线会员 发表于 2022-1-22 20:11:53 | 显示全部楼层
报的错误是什么啊,没看懂你想什么
46_avatar_middle
最佳答案
7 
在线会员 发表于 2022-1-23 04:49:27 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 screen_ok 于 2022-1-23 06:54 编辑

按照你的意图 OUTaaa 应该是这样的:

  1. int OUTaaa(int INbbb, char** OUTccc, int* OUTddd)
  2. {
  3.         if (INbbb == 0) // 情况1
  4.         {
  5.                 *OUTddd = 888;
  6.                 *OUTccc = "0000abcd"; // 情况1 字符串个数不定
  7.         }
  8.         else if (INbbb == 1) // 情况2
  9.         {
  10.                 *OUTddd = 999;
  11.                 *OUTccc = "1111abcd"; // 情况2 字符串个数不定
  12.         }
  13.         else
  14.         {
  15.         }
  16.         return strlen(*OUTccc); // 返回字符的长度
  17. }
  18. int main()
  19. {
  20.         int aa = 0, bb = 1;
  21.         char* cc = "runoob";
  22.         int dd = 0;
  23.         aa = OUTaaa(bb, &cc, &dd);// 调用函数
  24.         cout << aa << "  是aa的值" << endl;
  25.         cout << bb << "  是bb的值" << endl;
  26.         cout << cc << "  是cc的值 字符个数是"<< endl;
  27.         cout << dd << "  是dd的值" << endl;
  28.         return 0;
  29. }
复制代码


C程序中的字符串常量都是被放在 CONST 段中的,大概像这样:

CONST        SEGMENT
@runoob        DB 'runoob',00H
@0000abcd        DB '0000abcd', 00H
@1111abcd        DB '1111abcd', 00H
@s_cc                DB '  是cc的值 字符个数是', 00H
                        ……
CONST        ENDS

你的程序就是要给一个指针变量赋值。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-5-17 22:50

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表