字符串

Posted dana-gx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串相关的知识,希望对你有一定的参考价值。

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

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不指定长度,遇到字符串结束符 ‘‘ 就结束,但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++) != )
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!= )
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 = ;
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++) != );
8     return tmp;
9 }
View Code

以上是关于字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

JavaScript 代码片段

CSP核心代码片段记录

带有神秘附加字符的 Javascript Date getTime() 代码片段

web代码片段

vs code 自定义代码片段