玩编程许久,总感觉少点什么,又回头看了看C指针和字符串。便动手运用C指针实现了C字符串的一波函数。准确来说的话,C语言中只有字符类型,没有字符串类型。字符串统统是字符数组,由一个一个的字符拼接在一起。
运用指针实现C语言的字符串函数,有点深度,不仅要勤动脑,勤动手,还要细心,要耐心。
一、字符串函数展示
1. 求字符串长度
int length(char *string);
2. 复制字符串
char *copy(char *source, char *destination);
3. 取子字符串
char *substring(char *source, int begin, int end);
4. 定位子字符串在源字符串中的位置指针
char *locateSubstring(char *source, char *substring);
5. 比较两个字符串的大小
int compare(char *string1, char *string2);
6. 连接两个字符串
char *concatenate(char *source, char *destination);
7. 反转字符串
void inverse(char *string);
8. 是否为回文
int isPalindrome(char *source);
9. 去除字符串中指定的字符
void trim(char * string,char ch);
二、测试"字符串函数"
测试代码
#include <stdio.h>
#include "myString.h"
int main() {
puts("求字符串的长度");
int length1 = length("snrttdaftdaf");
printf("int length1 = length(\"snrttdaftdaf\");\t%d\n", length1);
puts("-----------------------------");
puts("拷贝字符串");
char source[32] = {0};
char *copyString = copy(source, "I will marry you");
printf("char * copyString=copy(source,\"I will marry you\");\t%s\n", source);
printf("char * copyString=copy(source,\"I will marry you\");\t%s\n", copyString);
puts("-----------------------------");
puts("根据字符串的起始和结束位置取出子字符串");
char *string = substring("SunshineRainbowSunrise", 8, 15);
printf("char *string = substring(\"SunshineRainbowSunrise\", 8, 15);\t%s\n", string);
puts("-----------------------------");
puts("定位子字符串在字符串中的位置指针");
char *string1 = locateSubstring("SunshineRainbowSunrise", "Sunrise");
printf("char *string1 = locateSubstring(\"Su