#include<stdio.h>
#include<stdlib.h>
int nodesize = 100;//定义初始大小
/*n是字符串下标
insert函数表示从str[n]开始插入字符串*str1
*/
int Insert(int n,char *str, char *str1){
int length1 = strlen(str);
if(n >= length1) return 0;
int length2 = strlen(str1);
if(length1 + length2 > nodesize){
nodesize = length1 + length2;
str = (char *)realloc(str,nodesize * sizeof(char));
}
int i;
for(i = length1 + length2- 1; i >= n + length2; i--){
str[i] = str[i - length2];
}
for(i = n; i < n + length2; i++){
str[i] = str1[i - n];
}
str[length1 + length2] = '\0';
return 1;
}
//start:字符串下标
//deletestr函数:从str[start]开始删除长度为len的字符串
int deletestr(int start,int len,char *str){
int length = strlen(str);
if(start > length || start < 0)
return 0;
int i;
for(i = start + len; i < length; i++){
str[i - len] = str[i];
}
str[i - len] = '\0';
return 1;
}
//check函数:从str[start]开始查找字符c
int check(int start,char *str,char c){
int length1 = strlen(str);
if(start >= length1) return -1;
int i;
for(i = start; i < length1; i++){
if(str[i] == c){
return i;
}
}
}
int main(){
//通过字符指针实现插入操作时为防止越界应预先调用malloc函数对其分配适当空间
char *str = (char *)malloc(nodesize * sizeof(char));
char *str1 = (char *)malloc(nodesize * sizeof(char));
// scanf("%s%s", str,str1);
//Insert(1,str,str1)&&printf("%s\n", str);
//deletestr(1,8,str)&&printf("%s\n", str);
//printf("%d",cheak(1,str,'5'));
return 0;
}
c语言实现对于字符串的删除、插入、查找字符
最新推荐文章于 2022-07-23 13:27:51 发布