C 字符串处理的一些基本函数

gets
获取用户从键盘输入的字符串.

例子

#include 
int main(){
    char str[100];
    printf("Input Something: ");
    gets(str);
    puts(str);

    return 0;
}

运行结果:

Input Something: Hello World
Hello World

当输入的字符串中含有空格时,输出仍为全部字符串。说明 gets 函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束.

strlen
将返回字符串的整数长度。

例子

#include 
#include 
int main(){
    char str="hello world";
    int len = strlen(str);
    printf("The lenth of the string is %d\n", len);

    return 0;
}

运行结果:

The lenth of the string is 11

需要说明:

  1. 要添加 #include
  2. strlen 会从字符串的第 0 个字符开始计算,直到遇到字符串结束标志 '\0'。

strcat

把两个字符串拼接在一起

例子

#include 
#include 
int main(){
    char str1[40]="welcome back ";
    int str2[20];
    printf("Input your name:");
    gets(str2);
    strcat(str1,str2);
    puts(st1);

    return 0;
}

运行结果:

Input your name:hejing
welcome back hejing

需要说明:

  1. strcat 将把 str2 连接到 str1后面,并删去 str1 最后的结束标志 '\0'。这就意味着,str1 的长度要足够,必须能够同时容纳 str1 和 str2,否则会越界.
  2. strcat 返回值为 str1 的首地址

**strcpy **
字符串复制

例子

#include 
#include 
int main(){
    char str1[15], str2="C Language";
    strcpy(str1, str2);
    puts(str1);
    printf("\n");

    return 0;
}

运行结果:

C Language

需要说明

  1. strcpy 会把 str2中的字符串拷贝到 str1中,串结束标志 '\0' 也一同拷贝。
  2. 要求str1有足够长度,否则不能全部装入所拷贝的字符串。

strtok
分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。

例子

/* strtok example */
#include 
#include 

int main (void)
{
    char str[] = "- This, a sample string.";
    char *pch;
    printf("Splitting string \"%s\" into tokens:\n", str);
    pch = strtok(str," ,.-");
    while (pch != NULL)
    {
        printf("%s\n", pch);
        pch = strtok(NULL, " ,.-");
    }
    printf("at the end: %s", str);
    return 0;
}

运行结果

Splitting string "- This, a sample string." into tokens:
This
a
sample
string
the end: - This

说明:strtok()用来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为 \0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

strstr
从字符串 str1 中寻找 str2 第一次出现的位置(不比较结束符NULL),如果没找到则返回NULL。

例子

/* strstr example */
#include 
#include 

int main ()
{
    char str[] = "This is a simple string";
    char *pch;
    
    pch = strstr(str, "simple");
    strncpy(pch, "sample", 7);
    
    puts(pch);
    puts(str);
    return 0;
}

运行结果

sample string
This is a sample string

其他一些函数

strncpy

函数原型charstrncpy(chardest,char*src,size_tn);
复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。

strcmp

原型 int strcmp ( const char * str1, const char * str2 );
功能:比较字符串 str1 和 str2。

说明:

当s1

当s1=s2时,返回值=0

当s1>s2时,返回值>0

...

你可能感兴趣的:(C 字符串处理的一些基本函数)