关于字符串函数的一些代码实现(strncpy strncat strncmp strchr strrchr)

来源:互联网 发布:兼职seo软文代写 编辑:程序博客网 时间:2024/05/22 10:35
//模拟实现strncpy函数
//从第一个字符开始把src复制到dest里面去,如果src的长度大于n,则只复制前n个字符,如果src的长度小于n,则把src复制完后其余的全服复制成'\0'
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncpy(char* dest, const char* src, int n)
{
 int i;
 int count = n;
 for (i = 0; i < n; i++)
  *dest++ = *src++;
}
int main()
{
 char arr[20] = { 34 };
 my_strncpy(arr, "hello world!", 7);//指定复制n个字符
 printf("%s ", arr);
 system("pause");
 return 0;
}
//模拟实现strncat函数
//追加复制,把src的内容复制到dest的'\0'处,复制n个字符,若n<src,则只复制前n个字符,若n>src,则其余部分为全零
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncat(char*dest,const char* src,int n)
{
 while (*dest++)
 {
  ;
 }
 *dest--;
 int i;
 for (i = 0; i < n; i++)
 {
  *dest++ = *src++;
 }
}
int main()
{
 char arr[30] = { "hello " };
 my_strncat(arr, "world!", 7);
 printf("%s", arr);
 system("pause");
 return 0;
}
//模拟实现strncmp函数
//从第一个字符开始进行字符串比较,如果str是dest的子字符串则返回0,如果第一个str小于dest则返回-1,反之则返回1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
int my_strncmp(char*src, char*dest, int n)
{
 while (*dest)
 {
  if ((*src - *dest) == 0)
  {
   src++;
   dest++;
  }
  else if ((*src - *dest) > 0)
  {
   return 1;
  }
  else
   return -1;
 }
 return 0;
}
int main()
{
 int ret = my_strncmp("fbcdef", "aabcdef",5);
 printf("%d ", ret);
 system("pause");
 return 0;
}
//模拟实现strchr函数
//寻找字符第一次出现的位置并打印剩下的字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
char* my_strchr(char*dest, char src)
{
 while (*dest)
 {
  if (*dest == src)
  {
   return dest;
  }
  else
   dest++;
 }
 return NULL;
}
int main()
{
 printf("%s ",my_strchr("abcdef", 'g'));
 system("pause");
 return 0;
}
//模拟实现strrchr函数
//找出字符最后一次出现的位置并打印剩下的字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
char* my_strrchr(char*dest, char src)
{
 int count = 0;
 while (*dest++)
 {
  count++;
 }
 dest--;
 while (count--)
 {
  if (*dest == src)
  {
   return dest;
  }
  else
   dest--;
 }
 return NULL;
}
int main()
{
 printf("%s ",my_strrchr("abecdef", 'e'));
 system("pause");
 return 0;
}
阅读全文
1 0
原创粉丝点击