首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符数组传递给函数

将字符数组传递给函数
EN

Stack Overflow用户
提问于 2013-09-04 09:37:28
回答 2查看 228关注 0票数 0

可怕的warning: passing argument 1 of ... makes integer from pointer without a cast

我就是不明白这个。我所要做的就是将一个简单的字符串(是的,我知道一个字符数组)传递给一个函数。该函数解析字符串并返回第一部分。有人能告诉我我哪里做错了吗?谢谢!

代码语言:javascript
复制
char* get_request_type(char* buffer) {
    char* p;
    p = strtok(buffer, "|");
    return p;
}

int main()
{
    char buffer[30] = "test|something";
    fprintf(stdout, "buffer: %s\n", buffer);  //<-- looks great but needs parsing
    char* request_type = get_request_type(buffer);  //<-- error is here
    fprintf(stdout, "%s\n", request_type); //<--expecting to see 'test'

}  

也许有一天我会习惯于使用C语言处理字符串,但那一天不是今天……

EN

回答 2

Stack Overflow用户

发布于 2013-09-06 16:23:09

您没有包含string.h,因此编译器将假定strtok被定义为:

代码语言:javascript
复制
int strtok();

返回int并接受未知数量的参数,这是调用隐式函数声明。解决方案就是在声明strtok的地方包含string.h

票数 2
EN

Stack Overflow用户

发布于 2013-09-06 16:09:25

这段代码运行良好。如果仍然有任何问题,请发帖。

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>
char* get_request_type(char *buffer) {
        char *p; 
        printf("----%s\n",buffer);
        p = strtok(buffer, "|");
        //fprintf("%s--->",p);  
        return p;
}

int main()
{
        char buffer[30] = "test|something";
        fprintf(stdout, "buffer: %s\n", buffer);  //<-- looks great but needs parsing
        char* request_type = get_request_type(buffer);  //<-- No error here
        fprintf(stdout, "request_type: %s\n", request_type);
        return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18604114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档