C语言怎么设定函数返回值为char*字符串类型?

比如这样一段代码:char*GetString(char*str){char*x[127];printf("%s",str);scanf("%s",&x);returnx... 比如这样一段代码:
char* GetString(char *str)
{
char *x[127];
printf("%s", str);
scanf("%s", &x);
return x;
}
int main()
{
char *p[127];
char *str[127];
scanf("%s", &str);
p = GetString(str);
printf("%s", p);
}

在 return x;
p = GetString(str);
这两行 编译会出现问题 就是不能在CHAR*[127]与char*之间转化的error
但是如果不界定长度的话 scanf赋值的时候就会出错

这个应该怎么解决?
展开
 我来答
hwd0312
推荐于2017-09-28 · TA获得超过4336个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:169万
展开全部
把函数的返回值的类型设置为char类型的指针就可以了。
例如:char* MultMatrix( )
实例:
#include <iostream>
using namespace std;
char* MultMatrix( )
{
char*M = new char[4];
M[0]='a';
M[1]='b';
M[1]='c';
M[3]='d';
M[3]='\0';//给字符串写结尾
cout << M[0] << " " << M[1] << endl;//输出返回前的数组
cout << M[2] << " " << M[3] << endl;
return M;
}
int main()
{

char *M = MultMatrix();
cout << M[0] << " " << M[1] << endl;//输出返回后数组
cout << M[2] << " " << M[3] << endl;
delete[] M;
return 0;
}
运行结果:
a b
c d
a b
c d
闷声发大才
推荐于2017-10-15 · TA获得超过160个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:49.8万
展开全部
老大,你代码写得有问题,首先你先确定是字符串指针,而不是指针数组
char *p[127];
char *str[127];
这两行都有问题
char* GetString(char *str)
{
char *strp=NULL;//先定义一个字符串指针
char x[127];
printf("%s", str);
scanf("%s", &x);
strp=x;//将指针指向这个新分配的字符串内存地址
return strp;//这样就能返回字符串指针了
}
int main()
{
char *p;//既然你的函数返回的是char*,此处当然要定义为char*
char str[127];
scanf("%s", &str);
p = GetString(str);
printf("%s", p);
}
更多追问追答
追问
这个代码最后P的值会产生乱码
追答
对不起,有个地方还得改一下
char* GetString(char *str)
{
char *strp=NULL;//先定义一个字符串指针
char x[127];
printf("%s", str);
scanf("%s", x);//此处修改 字符串指针在输入是不需要作为引用
strp=x;//将指针指向这个新分配的字符串内存地址
return strp;//这样就能返回字符串指针了
}

int main()
{
char *p;//既然你的函数返回的是char*,此处当然要定义为char*
char str[127];
scanf("%s", str);//字符串指针在输入是不需要作为引用
p = GetString(str);
printf("%s", p);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
regret4hxp2
2011-03-23 · TA获得超过682个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:248万
展开全部
char *x[127];
修改为 char x[127];

char *p[127];
char *str[127];
修改为
char p[127];
char str[127];
追问
p = GetString(str);
这一行仍然会报错
无法从“char *”转换为“char [127]‘
追答
GetString(char *str) 修改为 GetString(char str[])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式