📜  带有示例的C C++中常用的String函数(1)

📅  最后修改于: 2023-12-03 15:25:29.378000             🧑  作者: Mango

C/C++中常用的String函数

String是C/C++中用于字符串处理的数据类型。本文介绍C/C++中常用的String函数,包括以下方面:字符串长度、字符串比较、字符串查找、字符串拼接、字符串复制、字符串分割、字符串转换等。

字符串长度
strlen

strlen()函数用于获取字符串的长度。

语法

size_t strlen(const char* str);

参数

  • str: 要获取长度的字符串

返回值

  • 字符串str的长度

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "hello world";
    int len = strlen(str);
    printf("字符串长度: %d\n", len);
    return 0;
}
字符串比较
strcmp

strcmp()函数用于比较两个字符串是否相等。

语法

int strcmp(const char* str1, const char* str2);

参数

  • str1: 要比较的第一个字符串
  • str2: 要比较的第二个字符串

返回值

  • 如果两个字符串相等,返回0
  • 如果第一个字符串大于第二个字符串,返回大于0的整数
  • 如果第一个字符串小于第二个字符串,返回小于0的整数

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "hello world";
    char str2[] = "hello world";
    int result = strcmp(str1, str2);
    if (result == 0) {
        printf("两个字符串相等\n");
    } else if (result > 0) {
        printf("第一个字符串大于第二个字符串\n");
    } else {
        printf("第一个字符串小于第二个字符串\n");
    }
    return 0;
}
字符串查找
strstr

strstr()函数用于在一个字符串中查找另一个字符串。

语法

char* strstr(const char* str1, const char* str2);

参数

  • str1: 要查找的字符串
  • str2: 要查找的子串

返回值

  • 如果找到,返回指向该子串开头的指针
  • 如果没有找到,返回NULL

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "hello world";
    char str2[] = "world";
    char* result = strstr(str1, str2);
    if (result) {
        printf("找到了, 子串起始位置: %ld\n", result - str1);
    } else {
        printf("没找到\n");
    }
    return 0;
}
字符串拼接
strcat

strcat()函数用于将一个字符串拼接到另一个字符串末尾。

语法

char* strcat(char* dest, const char* src);

参数

  • dest: 目标字符串
  • src: 源字符串

返回值

  • 拼接后的字符串

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100] = "hello";
    char str2[] = " world";
    strcat(str1, str2);
    printf("%s\n", str1);
    return 0;
}
字符串复制
strcpy

strcpy()函数用于将一个字符串复制到另一个字符串。

语法

char* strcpy(char* dest, const char* src);

参数

  • dest: 目标字符串
  • src: 源字符串

返回值

  • 复制后的字符串

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100], str2[100] = "hello world";
    strcpy(str1, str2);
    printf("%s\n", str1);
    return 0;
}
字符串分割
strtok

strtok()函数用于将一个字符串按照指定的分隔符进行分割。

语法

char* strtok(char* str, const char* delim);

参数

  • str: 要分割的字符串
  • delim: 分隔符

返回值

  • 如果还有剩余的子串,返回该子串
  • 如果已经没有子串了,返回NULL

示例

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "hello world my name is john";
    char* p = strtok(str, " ");
    while (p != NULL) {
        printf("%s\n", p);
        p = strtok(NULL, " ");
    }
    return 0;
}
字符串转换
atoi

atoi()函数用于将一个字符串转换成整数。

语法

int atoi(const char* str);

参数

  • str: 要转换的字符串

返回值

  • 转换后的整数

示例

#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "100";
    int num = atoi(str);
    printf("%d\n", num);
    return 0;
}
atof

atof()函数用于将一个字符串转换成浮点数。

语法

double atof(const char* str);

参数

  • str: 要转换的字符串

返回值

  • 转换后的浮点数

示例

#include <stdio.h>
#include <stdlib.h>

int main() {
    char str[] = "3.1415926";
    double num = atof(str);
    printf("%f\n", num);
    return 0;
}
itoa

itoa()函数用于将一个整数转换成字符串。

语法

char* itoa(int value, char* str, int base);

参数

  • value: 要转换的整数
  • str: 存放转换后的字符串
  • base: 进制数

返回值

  • 转换后的字符串

示例

#include <stdio.h>
#include <stdlib.h>

int main() {
    int num = 100;
    char str[10];
    itoa(num, str, 10);
    printf("%s\n", str);
    return 0;
}
dtoa

dtoa()函数用于将一个浮点数转换成字符串。

语法

char* dtoa(double value, char* str);

参数

  • value: 要转换的浮点数
  • str: 存放转换后的字符串

返回值

  • 转换后的字符串

示例

#include <stdio.h>
#include <stdlib.h>

int main() {
    double num = 3.1415926;
    char str[20];
    sprintf(str, "%f", num);
    printf("%s\n", str);
    return 0;
}