1.strlen:计算字符串长度(不包含' ')
实现想法:遍历字符串,直到' '结束
#include<stdio.h> #include<stdlib.h> #include<string.h> //指针法 unsigned int mystrlenaddr(const char * str) //为什么使用const char,我们只计数不对原数据进行改变 { int length = 0; //长度初始化为0 while (*str++) { length++; } return length; } void main() { char * str = "fengcong is fucking too handsome"; //32个 //printf("%d ", strlen(str)); printf("%d ", mystrlenaddr(str)); system("pause"); }
2.strcmp:比较字符串大小(一般用于字符串排序)
实现想法:依次从字符串开始一直找到不同的那个字符进行比较,得出大小
#include<string.h> #include<stdio.h> #include<stdlib.h> //掌握指针法 int mystrcmp(char const * str1, const char * str2) { while (*str1 == *str2 && *str1 != '0') //一直找到两个字符串不同的地方 { str1++; str2++; } if (*str1 > *str2) return 1; else if (*str1 < *str2) return -1; else return 0; } void main() { char * str = "feng1"; char * str1 = "feng2"; //printf("%d ", strcmp(str, str1)); printf("%d ", mystrcmp(str, str1)); system("pause"); }
3.strcpy:用于字符串复制(复制包含' ')
实现想法:一直复制到' '结束
#define _CRT_SECURE_NO_WARNINGS #include<stdlib.h> #include<stdio.h> #include<string.h> //指针法 char * mystrcpyaddr(char * dest, const char * source) { if (dest == NULL || source == NULL) { return NULL; //如果目的操作或者源为空,那么久直接返回 } while (*dest++ = *source++) //装X写法 ; return dest; } //下标法 char * mystrcpyindex(char * dest, const char * source) { if (dest == NULL || source == NULL) { return NULL; //如果目的操作或者源为空,那么久直接返回 } int i = 0; while (source != '