编写函数insert

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:43:08
编写函数insert( ... , ... , ... )实现:将一个字符串插入到另一个字符串中的任意位置。
函数的前两个参数表示两个字符串,后一个参数表示插在第几个字符之前。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define ERROR_OCURRED (-1)
typedef struct _STRING_BUFFER_ {
size_t length;
char * buffer;
}SBuffer;

SBuffer new_buffer(size_t);
SBuffer new_buffer_from_char(const char*);
void free_buffer(SBuffer);
int insert_char_array(SBuffer*, const char*, size_t);
int insert(SBuffer*, const SBuffer);
int insert_at_pos(SBuffer*, const SBuffer, size_t);
int main (void) {
SBuffer string = new_buffer_from_char("Hello, world"), str = new_buffer_from_char("\"*_*\"");
insert_char_array(&string, "123", 3);
insert(&string, str);
printf("%s\n", string.buffer);
free_buffer(string);
return 0;
}

SBuffer new_buffer(size_t len) {
SBuffer tmp;
tmp.length = len;
tmp.buffer = malloc(len+1);
memset(tmp.buffer, len+1,