| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1757 人关注过本帖
标题:让指针指向字符串中第一个空格字符的位置,但无法实现
只看楼主 加入收藏
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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册: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
快速回复:让指针指向字符串中第一个空格字符的位置,但无法实现
数据加载中...
 
   



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

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