学习串的时候写的一点笔记
方便自己复习,也希望能给需要这个的人一点帮助
代码如下:
#include<bits/stdc++.h>//万能头文件,G++编译器 #define maxsize 1024 using namespace std; int strlenth (char s[])//s代表目标串 { int i=0; while(s[i]!='\0') { 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]!='\0') { s[i]=s1[i]; i++; } j=0; while(s2[j]!='\0') { s[i]=s2[j]; j++; i++; } s[i]='\0'; 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]='\0'; return 1; }//求子串的算法 int strcomp(char *s1,char *s2) { int i=0; while(s1[i]==s2[i]&&s1[i]!='\0') i++; return (s1[i]-s2[i]); }//串比较函数 int main() { char a[10]={'a','b','c','d','e','f','g','h','i','\0'}; char b[10]={'1','2','3','4','5','6','7','8','9','\0'}; printf("字符串a长度:%d\n",strlenth(a)); printf("字符串b长度:%d\n",strlenth(b)); char c[maxsize]; strconcat(a,b,c); puts(c); char d[maxsize]; strsub(d,c,1,5); puts(d); return 0; }
运行结果:
有任何错误的地方欢迎各位拍砖指正哦!!!