标题:让指针指向字符串中第一个空格字符的位置,但无法实现
只看楼主
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
已结贴  问题点数:20 回复次数:5 
让指针指向字符串中第一个空格字符的位置,但无法实现
设计一个函数,接受一个指向字符串的指针,返回指向该字符串第一个空格字符的指针,如果未找到空格字符,则返回空字符。但以下代码无法实现,问题出在哪?
程序代码:
#include"stdio.h"
char *function(char *p){
    char *q;
    int i=1;
    for(;*p;p++){
        if(*p==' '&&i==1){
            q=p;
            i++;
        }
        else
            continue;
    }
    return *q==' '?q:NULL;
}
int main(void){
    char *t;
    char *e;
    gets(e);
    t=function(e);
    puts(t);
    return 0;
}
搜索更多相关主题的帖子: 空格 指针 char 指向 字符 
2020-06-07 02:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
#include <stdio.h>
char *function(char *p)
{
    for(; *p && *p!=' '; ++p);
    return (*p?p:NULL);
}
int main(void)
{
    char e[256];
    gets(e);
    char *t=function(e);
    if (t)
        puts(t);
    else
        puts(".NULL.");
    return 0;
}
2020-06-07 06:45
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:7 
可能返回空格 和 一个指针的函数在C是不可能做到的
类型不一样

https://zh.
2020-06-07 08:53
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
得分:0 
回复 2楼 吹水佬
为什么我的代码行不通?
2020-06-07 13:28
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
得分:0 
以下是引用lin5161678在2020-6-7 08:53:23的发言:

可能返回空格 和 一个指针的函数在C是不可能做到的
类型不一样

但我返回的是一个指向空格字符的指针为什么不可以?
2020-06-07 13:32
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
得分:7 
当没有空格时,q指针一直没有初始化,所以return时*q是不合法
程序代码:
char *function(char *p){
    char *q = NULL;
    ...
    return q;
}


char * e也是没有分配存储空间
char e[100];

或者malloc
2020-06-07 13:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501995-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.917107 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved