#include<stdio.h>
//字符串的复制
void copy(char * str1,char * str2){
while(*str1!='\0'&&str2!='\0'){
*str1++=*str2++;
}
*str1='\0';
//return str1;
}
//求字符串的长度
int len(char *str){
int i=0;
while(*str++!='\0')
i++;
return i;
}
//字符串的链接
int join(char *str1,char *str2){
int m=len(str1);
int n=len(str2);
if(n+m>100)
return 0;
while(*str1!='\0')
str1++;
while(*str2!='\0'){
*str1++=*str2++;
}
*str1='\0';
return 1;
}
int main(){
char str1[100],str2[50];
gets(str1);
gets(str2);
if(join(str1,str2))
puts(str1);
else
printf("越界了\n");
return 0;
}
求子字符串
int Substring(char *str1,int start,int end,char *str2){
if(start<0||end<0||start+end>len(str2))
return 0;
str2=str2+start;
int i=0;
while(*str2!='\0'&&i<end)
{
*str1++=*str2++;
i++;
}
*str1='\0';
return 1;
}
判断两个字符串是否相等
int equal(char *str1,char *str2){
int m=len(str1);
int n=len(str2);
if(m!=n)
return 0;
while(*str1!='\0'){
if(*str1!=*str2)
{
return 0;
}
str1++;
str2++;
}
return 1;
}
插入子字符串
int strInsert(char str1[],int pos,char str2[]){
int m=len(str1);
int n=len(str2);
if(n+m>=50)
return 0;
for(int i=m;i>=pos;i--){
str1[i+n]=str1[i];
}
for(int j=pos;j<n+pos;j++)
str1[j]=str2[j-pos];
str1[n+m+1]='\0';
return 1;
}
删除字符串
char* strdelete(char *str,int pos,int len1){
int m=len(str);
char *str1=(char *)malloc((len1+1)*sizeof(char));
if(len1<0||pos<0||pos>=m||pos+len1>=m)
return 0;
for(int j=0;j<len1;j++){
*str1++=str[j+pos];
}
for(int i=0;i<=m-len1-pos;i++){
str[i+pos]=str[i+pos+len1];
}
*str1='\0';
str1=str1-len1;
return (str1);
}
str1的内存是什么时候释放的呢?