首页 > 其他分享 >C标准库<string.h>-str、strn开头的函数

C标准库<string.h>-str、strn开头的函数

时间:2024-09-26 23:19:53浏览次数:10  
标签:string dest str2 str1 char strn str printf 字符串

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

函数功能

strcat 函数用于将一个字符串追加到另一个字符串的尾部。

参数解释

  • dest:指向目标字符串的指针,这个字符串的尾部将被追加 src 字符串的内容。
  • src:指向源字符串的指针,其内容将被追加到 dest 字符串的尾部。

返回值

  • 返回指向目标字符串 dest 的指针。

函数实现

函数用法

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

int main() {
    char dest[50] = "Hello,";
    const char *src = "World!";

    // 将src追加到dest的尾部
    strcat(dest, src);

    printf("Concatenated String: '%s'\n", dest);

    return 0;
}
Concatenated String: 'Hello, World!'

 char *strncat(char *dest, const char *src, size_t n) 

函数功能

strncat 函数用于将一个字符串的一部分追加到另一个字符串的尾部,最多追加指定的字符数。

参数解释

  • dest:指向目标字符串的指针,这个字符串的尾部将被追加 src 字符串的内容。
  • src:指向源字符串的指针,其内容将被追加到 dest 字符串的尾部。
  • n:最大的字符追加数,包括空字符。

返回值

  • 返回指向目标字符串 dest 的指针。

函数实现

函数用法

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

int main() {
    char dest[50] = "Hello, ";
    char *src = "World! This is a test.";

    // 将src的前14个字符追加到dest的尾部
    strncat(dest, src, 14);

    printf("Concatenated String: '%s'\n", dest);

    return 0;
}
Concatenated String: 'Hello, World! This is'
请按任意键继续. . .

char *strchr(const char *str, int c) 

函数功能

strchr 函数用于在一个字符串中查找第一次出现的指定字符。

参数解释

  • str:指向要搜索的字符串的指针。
  • c:要搜索的字符(以整数形式给出)。

返回值

  • 如果找到了字符 c,则返回指向找到的第一个匹配字符的指针。
  • 如果没有找到,则返回 NULL

函数实现

函数用法

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

int main() {
    char *str = "Hello, World!";
    int c = 'W';

    // 使用 strchr 查找字符 'W'
    char *result = strchr(str, c);

    if (result) {
        printf("Character '%c' found at position: %ld\n", c, result - str + 1);
    } else {
        printf("Character '%c' not found.\n", c);
    }

    return 0;
}
Character 'W' found at position: 8
请按任意键继续. . .

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

函数功能

strcmp 函数用于比较两个字符串,并根据比较结果返回一个整数

参数解释

  • str1:指向第一个要比较的字符串的指针。
  • str2:指向第二个要比较的字符串的指针。

返回值

  • 如果 str1 小于 str2,则返回负整数。
  • 如果 str1 等于 str2,则返回 0
  • 如果 str1 大于 str2,则返回正整数。

函数实现

函数用法

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

int main() {
    const char *str1 = "Hello";
    const char *str2 = "Hell";
    const char *str3 = "Hello";

    int result1 = strcmp(str1, str2);
    int result2 = strcmp(str1, str3);

    if (result1 < 0) {
        printf("'%s' is less than '%s'\n", str1, str2);
    } else if (result1 > 0) {
        printf("'%s' is greater than '%s'\n", str1, str2);
    } else {
        printf("'%s' is equal to '%s'\n", str1, str2);
    }

    if (result2 < 0) {
        printf("'%s' is less than '%s'\n", str1, str3);
    } else if (result2 > 0) {
        printf("'%s' is greater than '%s'\n", str1, str3);
    } else {
        printf("'%s' is equal to '%s'\n", str1, str3);
    }

    return 0;
}
'Hello' is greater than 'Hell'
'Hello' is equal to 'Hello'
请按任意键继续. . .

下面的程序,和上面的程序有一点点不同,结果也不一样。 

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

int main() {
    const char *str1 = "Healo";
    const char *str2 = "Hell";
    const char *str3 = "Hello";

    int result1 = strcmp(str1, str2);
    int result2 = strcmp(str1, str3);

    if (result1 < 0) {
        printf("'%s' is less than '%s'\n", str1, str2);
    } else if (result1 > 0) {
        printf("'%s' is greater than '%s'\n", str1, str2);
    } else {
        printf("'%s' is equal to '%s'\n", str1, str2);
    }

    if (result2 < 0) {
        printf("'%s' is less than '%s'\n", str1, str3);
    } else if (result2 > 0) {
        printf("'%s' is greater than '%s'\n", str1, str3);
    } else {
        printf("'%s' is equal to '%s'\n", str1, str3);
    }

    return 0;
}
'Healo' is less than 'Hell'
'Healo' is less than 'Hello'
请按任意键继续. . .

函数功能

参数解释

返回值

函数实现

函数用法

函数功能

参数解释

返回值

函数实现

函数用法

标签:string,dest,str2,str1,char,strn,str,printf,字符串
From: https://blog.csdn.net/2401_82772407/article/details/142528906

相关文章

  • C标准库<string.h>-mem开头的函数
    void*memchr(constvoid*str,intc,size_tn)函数功能在参数str所指向的内存区域的前n个字节中搜索第一次出现字符c(转换为无符号字符类型)的位置。参数解释str:指向要被搜索的内存区域的指针。c:要搜索的字符,以整数形式给出,但会被转换为无符号字符类型进行搜索。n:指定要搜......
  • 易优CMS为何我安装完提示这个报错?:Array and string offset access syntax with curly
    当你遇到类似 Arrayandstringoffsetaccesssyntaxwithcurlybracesisdeprecated 的报错时,通常是因为当前使用的PHP版本较高,而程序代码中使用了一些已弃用的语法。原因分析PHP版本过高:当前使用的PHP版本(如PHP7.4或更高版本)不再支持某些旧的语法形式。代码使......
  • 初始化的代码块和@PostConstruct有什么区别
    背景    在实际开发中,我们经常会需要进行一些初始化操作,比如进行一些预加载和赋值之类的。在代码中,常见的有通过静态代码块、非静态代码块,@PostConstruct来实现初始化。那么既然他们都可以实现初始化操作,那么他们有什么区别呢?使用方式静态代码块:是用 static 关键......
  • .net 将string字符串转为json对象的两种方法
    1)将string直接转为json【注:适合信息量比较少的情况】  stringstr="{\"id\":\"s001\",\"name\":\"张三\",\"gender\":\"男\"}"    【注:上述中\起转义作用】2)将string信息转为list对象后再通过list对象转为json【注:适合信息量比较少的情况......
  • C++ 原始字符串(raw string literal )R“(...)“
    C++11可以在代码里嵌入一段原始字符串,该原始字符串不作任何转义,所见即所得。这个特性对于编写代码时要输入多行字符串,或者含带有特殊字符的字符串提供了巨大方便。语法:     R"(...)"记忆点:1.不做任何转义 stringstr="aaa\nbbb\nccc\n"; cout<<str<<endl......
  • stream
    注:List.of()方法需要1.8以上才支持1.filter,过滤,关键:PredicateStream.of(newFruit("草莓","","1","red"),newFruit("香蕉","","2","yellow"......
  • cobaltstrike权限维持
    1.注册表启动注意:优先用这种方式来进行权限维持task.exe是CS生成的后门文件,这里后门文件可以对其做免杀隐藏文件shellattribC:\Windows\task.exe  +s+h注册表启动后门文件shellregaddHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run/vWindowsUpdate/tREG_SZ/d......
  • WPF InkCanvas selection mode, save all/selected strokes, load strokes file, sav
    //xaml<Windowx:Class="WpfApp416.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • CSC3100 Data Structures
    RequirementsCode(90%)YoucanwriteyourcodeinJava,Python,C,orC++.Thetimelimitmayvaryamongdifferentanguages,dependingontheperformanceofthelanguage.Yourcodemustbeacompleteexcutableprograminsteadofonlyafunction.Weguara......
  • apparatus、instrument、equipment和device的区别
    equipment:装备。指做某种事情需要用到的一系列工具。或这些工具中的某一个。比如游泳装备,指的是泳镜、泳帽、泳裤等等一系列的东西。但是单拿泳镜出来,你也可以说它是一件游泳装备。device:设备。指具有某种或某些功能的一件工具。apparatus是一种equipment,instrument是一种device......