| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:求大神看看这段代码有什么需要改的地方没有————小白求赐教(关于串操作的 ...
只看楼主 加入收藏
lddfg
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2013-9-28
收藏
 问题点数:0 回复次数:0 
求大神看看这段代码有什么需要改的地方没有————小白求赐教(关于串操作的)
/*strinsert: 串插入操作
strcopy: 串复制操作
strempty: 串判空操作
strlength: 返回串长度
strclear: 串清空操作
strcat: 串粘贴操作
strsub: 求子串操作
strindex: 串定位操作*/

#include<stdio.h>
#include<string.h>
#define MAXLEN 60
typedef struct{
    char ch[MAXLEN];
    int len;
}sstring;
bool strinsert(sstring *s,sstring t,int pos){
    if(s->len<pos-1||pos<=0){
        return false;
    }
    else{
        for(int i=s->len-1;i>=pos-1;i--){
            if(i+t.len>=MAXLEN){
                continue;
            }
            else{
                s->ch[i+t.len]=s->ch[i];
            }
        }
        for(int i=0;i<t.len;i++){
            if(pos+i>=MAXLEN){
                break;
            }
            s->ch[pos+i]=t.ch[i];
        }
        s->len=s->len+t.len>=MAXLEN?MAXLEN:s->len+t.len;
    }
    return true;
}
void strcopy(sstring *s,sstring t){
    *s=t;
}
bool strempty(sstring s){
    if(s.len==0){
        return true;
    }
    else{
        return false;
    }
}
int strlength(sstring s){
    return s.len;
}
void strclear(sstring *s){
    s->len=0;
}
void strcat(sstring *s,sstring t){
    for(int i=0;i<t.len;i++){
        if(i+s->len>=MAXLEN){
            break;
        }
        s->ch[s->len+i]=t.ch[i];
    }
    s->len=s->len+t.len>=MAXLEN?MAXLEN:s->len+t.len;
}
bool strsub(sstring *sub,sstring s,int pos,int len){
    if(pos<=0||pos+len>s.len+1){
        return false;
    }
    else{
        for(int i=0;i<len;i++){
            sub->ch[i]=s.ch[pos+i];
        }
        sub->len=len;
    }
    return true;
}
bool strindex(sstring s,sstring t,int *seat){
    int j=0;
    for(int i=0;i<s.len-t.len+j&&j<t.len;){
        if(s.ch[i]==t.ch[j]){
            if(j==0){
                *seat=i+1;
            }
            j++;i++;
        }
        else if(j){
            i-=j-1;j=0;
        }
        else{
            i++;
        }
    }
    if(j==t.len){
        return true;
    }
    else{
        return false;
    }
}
int main(void){
    printf("Hello World!\n");
    return 0;
}
搜索更多相关主题的帖子: include return false 
2014-08-23 10:02
快速回复:求大神看看这段代码有什么需要改的地方没有————小白求赐教(关于串 ...
数据加载中...
 
   



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

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