| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:看看有啥更好的方法没?
只看楼主 加入收藏
airhiphop
Rank: 4
来 自:江苏南通
等 级:业余侠客
帖 子:69
专家分:256
注 册:2007-11-16
结帖率:100%
收藏
 问题点数:0 回复次数:1 
看看有啥更好的方法没?
#include <stdio.h>
#include <string.h>

char *find_char(char const *source, char const *chars);

int main()
{
        char **ps;
        char *result;
        char *test[] = {"www.,
                              "www.bccn.net",
                              "www.,
                              "www.,
                              "www.google.tw",
                              "mil.news.,
                              NULL};
        char chars[] = "pig";

        ps = test;
        while (*ps != NULL) {
                result = find_char(*ps, chars);
                if (result != NULL)
                        printf("%s, %s, %c\n", *ps, chars, *result);
                ps++;
        }
        return 0;
}

char *find_char (char const *source, char const *chars)
{
        char *ps;
        char *pc;

        /* 如果任一字符串为NULL或者为空,就返回NULL */
        if ((chars == NULL) || (source == NULL) ||
            (strlen(chars) == 0) || (strlen(source) == 0))
                return NULL;

         /* 返回第一个匹配的字符 */
        for (ps = source; *ps != '\0';) {
                for (pc = chars; *pc != '\0';) {
                        if (*ps == *pc)
                                return ps;
                        ++pc;
                }
                ++ps;
        }
        /* 没有匹配字符,返回NULL */
        return NULL;
}

就是在字符串A中找到在字符串B中第一个出现的字符.
这里面pc和ps赋值的时候编译器会产生一个WARNNING.
各位看看,有啥其他好方法没.....

[[it] 本帖最后由 airhiphop 于 2009-7-24 09:42 编辑 [/it]]
搜索更多相关主题的帖子: 查找字符 
2009-07-24 09:36
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
char const *find_char(char const *source, char const *chars);

int main()
{
        char **ps;
        char const *result;
        char *test[] = {"www.,
                              "www.bccn.net",
                              "www.,
                              "www.,
                              "www.google.tw",
                              "mil.news.,
                              NULL};
        char chars[] = "pig";

        ps = test;
        while (*ps != NULL) {
                result = find_char(*ps, chars);
                if (result != NULL)
                        printf("%s, %s, %c\n", *ps, chars, *result);
                ps++;
        }
        return 0;
}

char const *find_char (char const *source, char const *chars)
{
        char const *ps;
        char const *pc;

        /* 如果任一字符串为NULL或者为空,就返回NULL */
        if ((chars == NULL) || (source == NULL) ||
            (strlen(chars) == 0) || (strlen(source) == 0))
                return NULL;

         /* 返回第一个匹配的字符 */
        for (ps = source; *ps != '\0';) {
                for (pc = chars; *pc != '\0';) {
                        if (*ps == *pc)
                                return ps;
                        ++pc;
                }
                ++ps;
        }
        /* 没有匹配字符,返回NULL */
        return NULL;
}

身体是玩命的本钱
2009-07-25 13:14
快速回复:看看有啥更好的方法没?
数据加载中...
 
   



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

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