数据结构之串

学习串的时候写的一点笔记

方便自己复习,也希望能给需要这个的人一点帮助

代码如下:

#include<bits/stdc++.h>//万能头文件,G++编译器
#define maxsize 1024
using namespace std;
int strlenth (char s[])//s代表目标串
{
    int i=0;
    while(s[i]!='')
    {
        i++;
    }
    return i;
}//求串的长度算法
int strconcat(char s1[],char s2[],char s[])//s1,s2代表需要连接的目标串,s2连接在s1的后面,s代表连接之后的结果串
{
    int i=0,j,len1,len2;
    len1=strlenth(s1);
    len2=strlenth(s2);
    if(len1+len2>maxsize)
        return 0;//长度不够
    i=0;
    while(s1[i]!='')
    {
        s[i]=s1[i];
        i++;
    }
    j=0;
    while(s2[j]!='')
    {
        s[i]=s2[j];
        j++;
        i++;
    }
    s[i]='';
    return 1;
}//两个串的连接算法
int strsub(char t[],char s[],int i,int len)//t代表结果子串,s代表目标母串,i代表从母串中的第i个字符开始取字串,len代表字串的长度
{
    int slen;
    slen=strlenth(s);
    if(i<1||i>slen||len<0||len>slen-i+1)
    {
        printf("参数不对");
        return 0;
    }
    for(int j=0;j<len;j++)
    {
     t[j]=s[i+j-1];
    }
    t[len]='';
    return 1;
}//求子串的算法
int strcomp(char *s1,char *s2)
{
    int i=0;
    while(s1[i]==s2[i]&&s1[i]!='')
        i++;
    return (s1[i]-s2[i]);
}//串比较函数
int main()
{
    char a[10]={'a','b','c','d','e','f','g','h','i',''};
    char b[10]={'1','2','3','4','5','6','7','8','9',''};
    printf("字符串a长度:%d
",strlenth(a));
    printf("字符串b长度:%d
",strlenth(b));
    char c[maxsize];
    strconcat(a,b,c);
    puts(c);
    char d[maxsize];
    strsub(d,c,1,5);
    puts(d);
    return 0;
}

运行结果:

有任何错误的地方欢迎各位拍砖指正哦!!!

原文地址:https://www.cnblogs.com/yinbiao/p/8687224.html