strlen - 求字符串长度
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int my_strlen(char* str) {
int count = 0;
while (*str != '\0') {
count++;
str++;
}
return count;
}
int main() {
int len1 = strlen("abcdef");
char arr[] = { 'a','b','c','d','e','f' };
int len2 = strlen(arr);
printf("%d\n", len1);
printf("%d\n", len2);
int len3 = my_strlen("abcdef");
printf("%d\n", len3);
return 0;
}
strcpy - 复制字符串
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
char* my_strcpy(char* dest, const char* src) {
char* ret = dest;
while (*dest++ = *src++) {
;
}
return ret;
}
int main() {
char arr1[] = "abcdef";
char arr2[] = "bit";
char arr3[] = "hello";
strcpy(arr1, arr2);
printf("%s\n", arr1);
my_strcpy(arr1, arr3);
printf("%s\n", arr1);
return 0;
}
bit
hello
strcat - 追加
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
char* my_strcat(char* dest, const char* src) {
char* ret = dest;
while (*dest != '\0') {
dest++;
}
while (*dest++ = *src++) {
;
}
return ret;
}
int main() {
char arr1[30] = "hello";
char arr2[] = "world";
char arr3[] = "!";
strcat(arr1, arr2);
printf("%s\n", arr1);
my_strcat(arr1, arr3);
printf("%s\n", arr1);
}
helloworld
helloworld!
strcmp - 比较字符串大小
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int my_strcmp(const char* str1, const char* str2) {
while (*str1 == *str2) {
if (*str1 == '\0') {
return 0;
}
str1++;
str2++;
}
if (*str1 > *str2)
return 1;
if (*str1 < *str2)
return -1;
}
int main() {
char* p1 = "abcdef";
char* p2 = "sqwer";
char* p3 = "abcdee";
int ret = strcmp(p1, p2);
printf("%d\n", ret);
int ret2 = my_strcmp(p1, p3);
printf("%d\n", ret2);
return 0;
}
-1
1
strncpy - 复制字符串,限制字符数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
char arr1[5] = "abc";
char arr2[] = "hello world";
char arr3[] = "ac";
strncpy(arr1, arr2, 4);
printf("%s\n", arr1);
strncpy(arr1, arr3, 5);
printf("%s\n", arr1);
return 0;
}
hell
ac
strncat - 追加,限制字符数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
char arr1[30] = "hello";
char arr2[] = "world";
strncat(arr1, arr2, 3);
printf("%s\n", arr1);
return 0;
}
hellowor
strcmp - 比较字符串大小,限制字符数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
char* p1 = "abcdef";
char* p2 = "qwer";
int ret = strncmp(p1, p2,4);
printf("%d\n", ret);
return 0;
}
-1
|