【发布时间】:2025-12-31 02:30:12
【问题描述】:
void add()
{
char name[50], surname[50], usern[50];
int id, birth, amount;
printf("Enter your name, surname and your year of birth:\n");
scanf("%s %s %d", &name, &surname, &birth);
printf("Enter your ID, username and your total amount:\n");
scanf("%d %s %d", &id, &usern, &amount);
const char *pass1=function(usern);
}
const char *function (char usern[50])
{
char temp;
int i=0;
int j;
j = strlen(usern) - 1;
while (i < j)
{
temp = usern[i];
usern[i] = usern[j];
usern[j] = temp;
i++;
j--;
}
return usern;
}
我从 'main' 调用 'add' 来打印这些东西,然后我调用 'function' 来返回 usern 字符串,但出现了问题。
编译时出现错误:
[警告] 初始化使指针从整数而不进行强制转换--> const char *pass1=function(usern);
[错误] 冲突的类型 'function'--> const char *function (char usern[50])
【问题讨论】:
-
出了什么问题?你在用
const char *pass1做什么?预期的输出是什么,你得到什么输出?像“出现问题”这样的宽泛声明可能对您没有帮助。另一方面,有关问题的更多详细信息肯定会帮助您解决问题。 :) -
你好,警告是: [警告] 初始化使指针从整数而不进行强制转换--> const char *pass1=function(usern);和 [错误] 'function' 的类型冲突--> const char *function (char usern[50])
-
我想通过调用这个函数('function')返回“pass1”中的字符串“usern”
-
该错误是因为您在定义之前尝试使用
function()。您可以在使用之前定义函数,或者在使用之前添加函数原型:const char* function(char usern[50]);另请注意@Bathsheba 对可能未定义行为的回答。 -
谢谢@Sumit Chakraborty,我忘记了定义前面的“const char *”。现在我在 add 中使用“ printf ("%s", pass1); " 并打印出我想要的内容:)
标签: c string function pointers