| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 848 人关注过本帖
标题:关于’\0‘,
只看楼主 加入收藏
掘路者
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-20
结帖率:0
收藏
 问题点数:0 回复次数:2 
关于’\0‘,
#include<stdio.h>
void delchar(char *s,char c)
{
    char *p;
    for(p=s;*s;s++)
        if(*s!=c)
        {
            *p++=*s;
        }
        
}

void main()
{
    char c,s[100];
    printf("Input a string:\n");
    gets(s);
    printf("Input a char:After deleted,the string is:\n");
    scanf("%c",&c);
    delchar(s,c);
    printf("%s\n",s);
}

#include<stdio.h>
void delchar(char *s,char c)
{
    char *p;
    for(p=s;*s;s++)
        if(*s!=c)
        {
            *p++=*s;
        }
        *p='\0'
}
void main()
{
    char c,s[100];
    printf("Input a string:\n");
    gets(s);
    printf("Input a char:After deleted,the string is:\n");
    scanf("%c",&c);
    delchar(s,c);
    printf("%s\n",s);
}
按第一个代码输入happy new year!
输出的是hppy new yer!
按第二个代码输出的却是 hppy new yer!r!
请问这是为什么?

[此贴子已经被作者于2017-12-24 12:08编辑过]

搜索更多相关主题的帖子: void char printf Input string 
2017-12-24 12:06
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
按第二个
程序代码:
void delchar(char *s,char c)
{
    char *p;
    for(p=s;*s;s++)
        if(*s!=c)
        {
            *p++=*s;
        }
        *p='\0' //不觉得少的什么吗?
}
2017-12-24 14:08
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
不想 *p='\0' 可以这样:
#include<stdio.h>

char *delchar(char *s,char c)
{
    char *p, *address=s;
    for(p=s; (*s!=c)?(*p++=*s):1; s++) NULL;
    return address;
}

void main()
{
    char c,s[100];
    printf("Input a string:\n");
    gets(s);
    printf("Input a char:After deleted,the string is:\n");
    scanf("%c",&c);
    printf("%s\n",delchar(s,c));
}
2017-12-24 15:20
快速回复:关于’\0‘,
数据加载中...
 
   



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

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