鱼C论坛

 找回密码
 立即注册
查看: 2519|回复: 8

C与指针上的一道练习题

[复制链接]
发表于 2012-5-7 23:13:17 | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int prepare_key(char *key)
{
    char list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    /*
    **下面要做的是除去key中重复的字母;
    */
    char list_1[27];
    char temp[27];
    int count = 0,i = 0;
    while(i <= strlen(key))
    {
        if(strchr(temp,*(key + i)) == NULL)
        {
            *(temp + count) = *(key + i);
            count += 1;
        }
        i++;
    }
    *(temp + count + 1) = '\0';

    /*
    **以上除去了key中的重复字母,将新的字符串放在temp中;
    */
    int j = 1;
    while(j <= strlen(temp))
    {
        *strpbrk(list,temp) = '*';
        j ++;
    }
    /*
    **把list中的temp有的字符变成'*';
    */
    i = 0;
    j = 0;
    while(i <= strlen(list))
    {
        if(isalpha(*(list + i)))
        {
            *(list_1 + j) = *(list + i);
            j++;
        }
        i++;
    }
    *(list_1 + j) = '\0';
    /*
    **list中的'*'被删除后形成新的字符数组list_1;把temp复制到key中,再把list_1接到key后面;
    */
    strcpy(key,temp);
    strcat(key,list_1);
    return 0;


}

int main()
{
    char key[27] = "PENGXIAOLONG";
    prepare_key(key);
    printf("%s\n",key);

    return 0;
}


C与指针 190页的第12题,我简化了,但这个程序一运行就死。大神们哪帮个忙~~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-5-7 23:17:57 | 显示全部楼层
呵呵  我知道;了我的temp和list_1没初始化  只要随便给他们初始化一下就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-8 07:55:33 | 显示全部楼层


你可以调试出来的嘛。。。

temp[27]="",list_1[27]=""
初始化就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-8 07:56:14 | 显示全部楼层
本帖最后由 越野e族 于 2012-5-8 07:58 编辑

...原来你早就知道了。囧,没看回复,直接回复你了


楼主,你试下初始化temp[]=“” list_1[]="",看下结果如果。就是不标字符串长度看看。应该有意想不到的收获。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-8 12:37:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-5-8 12:39:49 | 显示全部楼层
越野e族 发表于 2012-5-8 07:56
...原来你早就知道了。囧,没看回复,直接回复你了

只打印 了一个字符P ,是不是因为没定义长度,所以默认长度是'\0'占的那一个字节?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-8 22:03:09 | 显示全部楼层
现在改汇编了,看不懂C了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-5-9 11:35:02 | 显示全部楼层
学习,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-13 11:00:34 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 08:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表