strcat:字符串连接函数
函数原型:char *strcat (char *dest,char *src);
头文件:# include< string.h>
函数功能:将两个字符串连接合并成一个字符串,也就是把字符串src连接到字符串dest后面,连接后的结果放在字符串dest中
返回值:指向字符串dest的指针
char *My_Strcat(char *dest, char *src)//字符串连接函数
{
assert(dest != NULL&&src != NULL);
while (*dest!= '\0')
{
dest++;
}
while (*src++ != '\0')
{
*dest++= *src;
}
*(++dest)= '\0';
return dest;
}
int main()
{
char dest[100] = { "hello w" };
char *src = "orld!" ;
My_Strcat(dest,src);
printf("%s", dest);
return 0;
}
strchr:字符串中字符首次匹配函数
函数原型:char *strchr(char *str, char c);
头文件:#include< string.h>
函数功能:在字符串中查找给定字符的第一次匹配,也就是在字符串str中查找字符c第一次出现的位置
返回值:第一次匹配位置的指针
const char *My_Strchr(const char *str, char c)//字符串中字符首次匹配函数
{
assert(str != NULL);
while (*str != '\0')
{
if (*str == c)
{
return str;
}
str++;
}
return NULL;
}
int main()
{
char dest[100] = { "hello w" };
char *src = "orld!" ;
printf("%c\n",My_Strchr(dest, 'e'));
return 0;
}
strnchr
const char *My_Strnchr(const char *str, char c, int n)//查找给定字符,第n次出现的位置
{
assert(str != NULL);
while (*str != '\0')
{
if (*str == c)
{
n--;
}
if (n == 0)
{
return str;
}
str++;
}
return NULL;
}
int main()
{
char dest[100] = { "roglo C Program!" };
char *src = "hel" ;
printf("%s\n",My_Strnchr(dest, 'o', 3));
return 0;
}
strcmp:字符串比较函数
函数原型:int strcmp (char str1,char str2);
头文件:#include< string.h>
函数功能:比较两个字符串的大小,也就是把字符串str1和字符串str2从首字符开始逐字符的进行比较,直到某个字符不相同或比较到最后一个字符为止,字符的比较为ASIC码的比较
返回值:若字符串str1大于字符串str2返回结果大于零,若字符串str1小于字符串str2返回结果小于零,若字符串str1等于字符串str2返回结果等于零
int My_Strcmp(const char *str1,const char * str2)//字符串比较函数
{
assert(str1 != NULL&&str2 != NULL);
int n = 0;
while (*str1 != '\0'&&*str2 != '\0')
{
if (*str1 != *str2)
{
n = *str1 - *str2;
return n;
}
str1++;
str2++;
}
n = *str1 - *str2;
return n;
}
int main()
{
char dest[100] = { "hello w" };
char *src = "hello world!" ;
printf("%d",My_Strcmp(dest, src));
return 0;
}
strcpy:字符串拷贝函数
函数原型: char * strcpy (char dest,char src);
头文件:#include< string.h>
函数功能:实现字符串的拷贝工作,也就是把字符串src中的内容拷贝到字符串dest中,使两个字符串的内容相同。
返回值:指向字符串dest的指针
char *My_Strcpy(char *dest, char * src)//字符串拷贝函数
{
assert(dest != NULL&&src != NULL);
int i = 0;
while (src[i]!='\0')
{
dest[i] = src[i];
i++;
}
return dest;
}
int main()
{
char dest[100] = { "" };
char *src = "hello world!" ;
printf("%s",My_Strcpy(dest, src));
return 0;
}
strlen:计算字符串长度函数
函数原型: int strlen (char *str);
头文件:#include< string.h>
函数功能:求字符串的长度,也就是求字符串str中有多少个字符
返回值:字符串str字符的个数
int My_Strlen(const char *str)//计算字符串长度函数
{
assert(str != NULL);
int count = 0;
while (str[count] != '\0')
{
count++;
}
return count;
}
int main()
{
char dest[100] = { "" };
char *src = "hello world!" ;
printf("%d\n", My_Strlen(src));
return 0;
}
strncat:字符串连接函数
函数原型:char *strncat (char *dest, char *src, int n);
头文件:#include< string.h>
函数功能:将一个字符串的子串连接到另一个字符串末端,也就是把字符串src
的前n个字符连接到字符串dest后面,连接后的结果放在字符串dest中
返回值:指向字符串dest的指针
char *My_Strncat(char *dest, const char *src, int n)//把src字符串中n个字符连接到dest后
{
assert(dest != NULL&&src != NULL);
assert(n >= 0);
while (*dest != '\0')
{
dest++;
}
while (*src != '\0'&&n>=0)
{
*dest++ = *src++;
n--;
}
*(++dest) = '\0';
return dest;
}
int main()
{
char dest[100] = { "" };
char *src = "hello world!" ;
My_Strncat(dest, src, 12);
printf("%s", dest);
return 0;
}
strncpy:字符串子串拷贝函数
函数原型: char * strncpy (char dest,cosnt char src, int n);
头文件:#include< string.h>
函数功能:实现字符串子串的拷贝工作,也就是把字符串src中的前n个字符拷贝到字符串dest中。
返回值:指向字符串dest的指针
char *My_Strncpy(char *dest, cosnt char * src, int n)//字符串子串拷贝函数
{
assert(dest != NULL&&src != NULL);
assert(n >= 0);
while (*src != '\0'&&n > 0)
{
*dest++ = *src++;
n--;
}
return dest;
}
int main()
{
char dest[100] = { "roglo C Program!" };
char *src = "hel" ;
My_Strncpy(dest, src, 3);
printf("%s", dest);
return 0;
}
strncmp:字符串子串比较函数
函数原型: int strncmp (char str1,char str2, int n);
头文件:#include< string.h>
函数功能:比较两个字符串子串的大小,也就是把字符串str1的前n个字符组成的子串和字符串str2的前n个字符组成的子串进行比较,从首字符开始逐字符的进行比较,直到某个字符不相同或比较到第n个字符为止。
返回值:若字符串str1前n个字符组成的子串大于字符串str2前n个字符组成的子串返回结果大于零,若字符串str1前n个字符组成的子串小于字符串str2前n个字符组成的子串返回结果小于零,若字符串str1前n个字符组成的子串等于字符串str2前n个字符组成的子串返回结果等于零
int My_Strncmp(char *str1, char * str2, int n)//字符串子串比较函数
{
assert(str1 != NULL&&str2 != NULL);
int s = 0;
while (*str1 != '\0'&&*str2 != '\0'&&n > 0)
{
if (*str1 != *str2)
{
s = *str1 - *str2;
return s;
}
str1++;
str2++;
n--;
}
s = *str1 - *str2;
return s;
}
int main()
{
char dest[100] = { "hello C Program!" };
char *src = "hello world!" ;
printf("%d\n", My_Strncmp(dest, src, 5));
printf("%d\n", My_Strncmp(dest, src, 10));
return 0;
}
strrchr:字符串中字符末次匹配函数
函数原型:char *strrchr(char *str, char c);
头文件:#include< string.h>
函数功能:在字符串中查找给定字符的最后一次匹配,也就是在字符串str中查找字符c最后一次出现的位置
返回值:最后一次匹配位置的指针
char *My_Strrchr(char *str, char c)//字符串中字符末次匹配函数
{
assert(str != NULL);
int i = 0;
while (str[i] != '\0')
{
i++;
}
while(i >= 0)
{
if (str[i] == c)
{
return str + i;
}
i--;
}
return NULL;
}
int main()
{
char dest[100] = { "hello C Program!" };
char *src = "hello world!" ;
printf("%s\n",My_Strrchr(dest, 'o'));
return 0;
}
strstr:字符串匹配函数
函数原型:char *strstr(char *str1, char *str2);
头文件:#include< string.h>
函数功能:在字符串中查找另一个字符串首次出现的位置,也就是在字符串str1中查找第一次出现字符串str2的位置。
返回值:返回第一次匹配字符串的指针
char *My_Strstr(char *str1, char *str2)//字符串匹配函数
{
assert(str1 != NULL&&str2 != NULL);
int i = 0;
int j = 0;
while (str1[i] != '\0')
{
while(str1[i] == str2[j])
{
if (str2[j + 1] == '\0')
{
return str1 + i - j;
}
i++;
j++;
}
j = 0;
i++;
}
return NULL;
}
int main()
{
char dest[100] = { "hello C Program!" };
char *src = "rog" ;
printf("%s", My_Strstr(dest, src));
return 0;
}
Count_Char
int Count_Char(const char *str, const char *chars)//str中有多少个字符与chars匹配
{
assert(str != NULL && chars != NULL);
int count = 0;
int i = 0;
while (str[i] != '\0')
{
int j = 0;
while (chars[j] != '\0')
{
if (chars[j] == str[i])
{
count++;
}
j++;
}
i++;
}
return count;
}
int main()
{
char dest[100] = { "roglo C Program!" };
char *src = "hello" ;
printf("%d\n",Count_Char(dest, src));
return 0;
}