#include<stdio.h>
#include<cassert>
#include<string.h>
int my_strlen(const char* arr1) {
assert(arr1 != NULL);
int count=0;
while (*arr1++ != '\0') {
count++;
}
return count;
}
int my_strcmp(const char* arr1, const char* arr2) {
assert( arr1 != NULL && arr2!=NULL);
int result = 0;
while (*arr1 == *arr2) {
if (*arr1 == '\0') return result;
arr1++;
arr2++;
}
result = *arr1 > *arr2 ? 1 : -1;
return result;
}
void my_strcat(char* arr1, const char* arr2) {
assert(arr1 != NULL && arr2 != NULL);
while (*arr1 != '\0') {
arr1++;
}
while (*arr2 != '\0') {
*arr1++ = *arr2++;
}
*arr1 = '\0';
}
void my_strcpy(char* arr1, const char* arr2) {
assert(arr1 != NULL && arr2 != NULL);
if (my_strlen(arr1) >= my_strlen(arr2)) {
while (*arr2 != '\0') {
*arr1++ = *arr2++;
}
*arr1 = '\0';
}
else {
printf("EORROR");
return;
}
}
void Insert(char*arr1, char x, int pos)
{
assert(arr1 != NULL);
int i;
if (pos >= strlen(arr1))
{
printf("wrong position");
}
else
{
for (i = strlen(arr1); i >= pos; i--)
arr1[i + 1] = arr1[i];
arr1[pos] = x;
}
}
void Delete(char *arr1, char x) {
assert(arr1 != NULL);
int i;
int len = my_strlen(arr1);
for (i = 0; i < len; i++) {
if (arr1[i] == x) {
break;
}
}
while (i < len - 1) {
arr1[i] = arr1[i + 1];
i++;
}
arr1[i] = '\0';
}
int main(void) {
char arr1[10] = "Jerry";
char arr2[] = "Tom";
int len = my_strlen(arr1);
printf("%d\n", len);
Insert(arr1, 'c', 2);
printf("%s\n", arr1);
Delete(arr1, 'e');
printf("%s\n", arr1);
printf("%d\n", my_strcmp(arr1, arr2));
my_strcat(arr1, arr2);
printf("%s\n", arr1);
my_strcpy(arr1, arr2);
printf("%s\n", arr1);
return 0;
}
C语言——对字符串中几个常用函数进行自定义
最新推荐文章于 2024-07-06 15:15:17 发布