码迷,mamicode.com
首页 > 其他好文 > 详细

字符串

时间:2018-10-04 18:26:48      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:div   str   不同   效率   memcpy   bre   标准库   void   const   

字符串:C/C++中没有专门处理字符串的变量,一般都用数组存放。字符串以 ’\0’ 作为结束符。

1.其他类型转字符串:C语言提供了几个标准库函数,可以将任意类型,如下所示:

  itoa():将整形转换为字符串

  ltoa():将长整型转换为字符串

  ultoa():将无符号长整型转换为字符串

  也可以用sprintf将数字转换为字符串,其比上面库函数转换效率低

2.字符串转为其他类型:

  atoi():将字符串转换为整型值

  atol():将字符串转换为长整型值

  strtoul():将字符串转换为无符号长整型值

3.常用的字符串处理函数:

  字符串输出函数  puts()      字符串输出函数  gets()

  字符串连接函数  strcat()    字符串复制函数  strcpy()

  字符串比较函数  strcmp()     测字符串长度函数 strlen()

  字符串子串比较函数 strstr()  

4. strcpy与memcpy的区别(可分3类):

  1》复制的内容不同;strcpy只能复制字符串,而memcpy可以是任意的内容(数组,结构体、类等)

  2》复制的方法不同;strcpy不指定长度,遇到字符串结束符 ‘\0‘ 就结束,但memcpy由第三个参数决定

  3》用途不同;复制字符串一般用strcpy,其他数据类型时,一般用memcpy

5.编写函数实现字符串库函数功能

  1.编写实现 strcpy 函数功能 

技术分享图片
1 char *strcpy(char *dest, const char *src)
2 {
3     char *tmp = dest;
4 
5     while ((*dest++ = *src++) != \0)
6     {}
7     return tmp;
8 }
View Code

  2.编写实现 memcpy 函数功能

技术分享图片
 1 void *memcpy(void *dest, const void *src, size_t num)
 2 {
 3     int i;
 4     char *d = (char *)dest, *s = (char *)src;
 5 
 6     for (i = 0; i < num; i++)
 7         {
 8             d[i] = s[i];
 9         }        
10     return  dest;
11 }                    
View Code

  3.编写实现 strlen 函数功能

技术分享图片
1 size_t strlen(const char *str)
2 {
3     const char *tempstr= str;
4 
5     while (*tempstr!= \0)
6         tempstr++;
7     return tempstr- str;
8 }
View Code

  4.编写实现 strcmp 函数功能

技术分享图片
 1 int strcmp(const char *cs, const char *ct)
 2 {
 3     unsigned char c1, c2;
 4     while (1) 
 5         {
 6         c1 = *cs++;
 7         c2 = *ct++;
 8         if (c1 != c2)
 9             return c1 < c2 ? -1 : 1;
10         if (!c1)
11             break;
12     }
13     return 0;
14 }    
View Code

  5.字符串反转函数

技术分享图片
 1 char* strrev1(const char *str)
 2 {
 3     int len = strlen(str);
 4     char *tmp = new char[len + 1];
 5     
 6     strcpy(tmp, str);
 7     for(int i = 0; i < len / 2; ++i)
 8     {
 9         char c = tmp[i];
10         tmp[i] = tmp[len - i - 1];
11         tmp[len - i - 1] = c;
12     }
13     return tmp;
14 }
View Code

  6.字符串删除函数

技术分享图片
 1 char* deleteChar(char *str, char c)
 2 {
 3     char *head = NULL;
 4     char *p = NULL;
 5     
 6     if(str = NULL)
 7     {
 8         return NULL;
 9     }
10     head = p = str;
11     while(*p++)
12     {
13         if(*p != c)
14         {
15             *str++ = *p;
16         }
17     }
18     *str = \0;
19     return head;
20 }
View Code

  7.编程实现 strcat 函数功能

技术分享图片
1 char *strcat(char *dest, const char *src)
2 {
3     char *tmp = dest;
4 
5     while (*dest)
6         dest++;
7     while ((*dest++ = *src++) != \0);
8     return tmp;
9 }
View Code

字符串

标签:div   str   不同   效率   memcpy   bre   标准库   void   const   

原文地址:https://www.cnblogs.com/Dana-gx/p/9742683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!