| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 878 人关注过本帖, 1 人收藏
标题:基础问题
取消只看楼主 加入收藏
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
结帖率:97.3%
收藏(1)
 问题点数:0 回复次数:6 
基础问题
#include <stdio.h>

int main ()
{
    char change (char *p);
    char arr[100];
    scanf ("%s",arr);
    change (arr);
    return 0;
}
char change (char *p)
{

    char *str;
    while (*p != '\0')
    {
        if (*p >= 97 && *p <= 122)
            {
                *str++ = *p;      //这为什么一调试就错呢。

            }
                p++;
    }
    printf ("%s\n",str);
    return 0;
}
//输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个素  例如:输入ab234$df  新生成的串为abdf
搜索更多相关主题的帖子: 字母 include change return 
2012-06-30 10:28
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
没指向不能直接赋值吗额。。。貌似不能,那样用指针怎么接收那个字符呢

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-06-30 20:01
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
程序代码:
#include <stdio.h>

int main ()
{
    char change (char *p);
    char arr[100];

    scanf ("%s",arr);
    change (arr);

    return 0;
}
char change (char *p)
{

    char *str = p;

    while (*p != '\0')
    {

        puts(p);
        puts(str);

        if (*p >= 97 && *p <= 122)
            {
                *str++ = *p; 

            }
                p++;
    }

    printf ("%s\n",str);

    return 0;
}

我调试了下,输出结果很奇怪。

输入abcd
输出:
abcd
abcd
abcd
bcd
bcd
cd
cd
d
d
为什么


总有人比你努力,可怕的是比你牛的人比你还努力。
2012-06-30 20:24
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
其实我是想把str指向一个空值,然后把*p中字母都赋给str。。。可是如果指向p的话就不行了,给str赋NULL也不行。

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-01 10:03
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
程序代码:
#include <stdio.h>

int main ()
{
    char change (char *p);
    char arr[100];

    scanf ("%s",arr);
    change (arr);

    return 0;
}
char change (char *p)
{

    char *str = p;

    while (*p != '\0')
    {

        if (*p >= 97 && *p <= 122)
            {
                *str = *p;
                printf ("%c",*str);    //这已经搞定了,可是怎么统计字母总数呢
               

                str++;
            }

        p++;
    }


    return 0;
}

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-01 10:17
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
#include <stdio.h>
int main ()
{
    char change (char *p);
    char arr[100];
    scanf ("%s",arr);
    change (arr);
    return 0;
}
char change (char *p)
{
    char *str = p;
    int sum = 0;
    while (*p != '\0')
    {
        if (*p >= 97 && *p <= 122)
            {
                *str = *p;
                printf ("%c",*str);
                sum++;
                str++;
            }
        p++;
    }
    printf ("\n\ntotal : %d\n\n",sum);
    return 0;
}//原来这么简单

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-01 10:24
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
额...我写的程序怎么这么烂...跟版主不能比...逻辑思维不行吗............

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-07-01 14:46
快速回复:基础问题
数据加载中...
 
   



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

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