| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 318 人关注过本帖
标题:请各位帮忙看看错在哪里。
只看楼主 加入收藏
xjh110119
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2012-2-24
结帖率:0
收藏
 问题点数:0 回复次数:1 
请各位帮忙看看错在哪里。
输出 包含 字符串 pattern[]的行,并找出 字符串 pattern[]在输入行中最右边的位置。

感觉是函数 strindex 返回值得问题,可是找不啊出。
程序代码:
#include <stdio.h>
#define MAXLINE     1000 /*输入行长度*/
int getline(char line[],int max);
int strindex(char source[],char searchfor[]);

char pattern[] = "ould"; /*待查找的行*/
//找出匹配的行
main()
{
    char fine[MAXLINE];
    int c ;

    while(getline(fine,MAXLINE) > 0)
        if(c= strindex(fine,pattern) >= 0)
            printf("%s\t出现在%d",fine,c);
           
        return 0;
}
int getline(char s[],int lim)
{
    int i,c;
    for(i = 0 ; i < --lim && (c = getchar()) != EOF && c != '\n'; ++i)
        s[i] = c;
    if(c == 'n'){
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
}

int strindex(char s[],char to [])
{
    int i,j,k,o;
    for(i = 0; s[i] != '\0'; ++i){
        for(j = i, k = 0; to[k] != '\0' && s[j] == to[k];++j, ++k)
            if(to[k]=='\0')
        o = i;
        if(k > 0 && to[k] == '\0')
        return o;
           
    }
    return -1;
}


[ 本帖最后由 xjh110119 于 2012-3-3 18:49 编辑 ]
搜索更多相关主题的帖子: 字符串 color 
2012-03-03 14:48
xjh110119
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2012-2-24
收藏
得分:0 
已经想到
  
程序代码:
int strindex(char s[],char to [])
{
    int i,j,k,o;
    for(i = 0; s[i] != '\0'; ++i){
        for(j = i, k = 0; to[k] != '\0' && s[j] == to[k];++j, ++k)
            if(to[k]=='\0')
        o = i;
        if(k > 0 && to[k] == '\0')
        return o;
          
    }
    return -1;
}


已经想到这个不能在循环体里。
可是怎样才能再to[k]=='\0'时得到这个数值。
   if(to[k]=='\0')
        o = i;


2012-03-03 20:23
快速回复:请各位帮忙看看错在哪里。
数据加载中...
 
   



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

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