我是靠谱客的博主 负责小天鹅,最近开发中收集的这篇文章主要介绍C字符串函数运用(strlen-strcpy-strcat-strncat-strcmp-strrev-strlwr-strupr-strchr-strstr)一:基本概念 二:声明打印字符串三:输入gets()打印puts()函数四:常用字符串函数 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录:

一:基本概念 

1.占用内存

 2.字符串的初始化

3.字符串与指针

4.字符串的输出

二:声明打印字符串

1.声明

2.打印字符串

三:输入gets()打印puts()函数

1. 输入gets()函数

2.打印puts()函数

四:常用字符串函数 

1.strlen()函数

2.strcpy(destination,source)函数

3.strcat(first_string, second_string)函数

4.字符串拼接(strncat)函数

5.strcmp(first_string, second_string)函数

6.strrev(string)函数

7.strlwr(string)函数

8.strupr(string)函数


C语言——字符串

"string.h"库中定义了许多重要的字符串函数。部分常用的函数如下所列

函数说明
strlen(string_name)返回字符串(string_name)的长度
strcpy(destination, source)将源字符串(source)的内容复制到目标字符串(destination)
strcat(first_string, second_string)

第一个字符串(first_string)与第二个字符串(second_string) 连接。字符串的结果存储在第一个字符串(first_string)中

strncat(char* dest,const char* src,const size_t n)
将src字符串的前n个字符拼接到dest所指的字符串尾部
strcmp(first_string, second_string)

比较第一个字符串(first_string)和第二个字符串(second_string)。如果两个字符串相同,则返回0

strrev(string)返回给定字符串(string)的反向字符串
strlwr(string)返回小写字符串字符
strupr(string)返回字符串大写字符

strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置

strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置

一:基本概念 

1.占用内存

char str[21];     // 占用21字节的内存
char str[1024];   // 占用1024字节的内存

 2.字符串的初始化

char strname[21];
strname[0]=0;    // 把第一个元素的值置为0
memset(strname,0,sizeof(strname));  // 把全部的元素置为0

3.字符串与指针

在C语言中,数组名是数组元素的首地址,字符串是字符数组,所以在获取字符串的地址的时候,不需要用&取地址

  char strname[21];
  memset(strname,0,sizeof(strname));
  strcpy(strname,"abcdefghijk");       // 把abcdefghijk赋值给strname
  printf("%sn",strname);              // 输出abcdefghijk

4.字符串的输出

字符串采用%s输出 

printf("=%10s=n","abcd");   // 输出10个字符宽度,右对齐,执行结果是=      abcd=
  printf("=%-10s=n","abcd");  // 输出10个字符宽度,左对齐,执行结果是=abcd      =

如果输出的字符串的长度大于对齐格式中的数字,就按字符串的实际长度输出

二:声明打印字符串

1.声明

C语言中的字符串是由(空字符)终止的字符数组

字符串的结尾标志是0

在C语言中有两种方法可以用来【声明】字符串:

    通过字符数组
        char ch[11]={'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', ''};
            如果不想数组大小是强制性的。 那么可以将上面的代码改写为如下:
            char ch[]={'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't', ''};

    通过字符串文字
        char ch[]="yiibai.com";
            在这种情况下,''将由编译器自动在字符串末尾附加

2.打印字符串

#include <stdio.h>  
void main()
{
    char ch[11] = { 'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '' };
    char ch2[] = "www.yiibai.com";

    printf("Char Array Value is: %sn", ch);
    printf("String Literal Value is: %sn", ch2);
}

三:输入gets()打印puts()函数

这两个函数都在<stdio.h>头文件中定义

1. 输入gets()函数

gets()函数从用户读取字符串    

1.函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串

2.gets(s)函数与scanf("%s", &s)相似, 但不完全相同
    使用scanf("%s", &s)函数输入字符串时存在一个问题
        就是如果输入了空格会认为输入字符串结束
        空格后的字符将作为下一个输入项处理
    但gets() 函数将接收输入的整个字符串直到回车为止
main()

     {

          char s[20], *f;

          printf("What's your name?n");

          gets(s);                      /*等待输入字符串直到回车结束*/

          puts(s);                      /*将输入的字符串输出*/

          puts("How old are you?");

          gets(f);

          puts(f);

2.打印puts()函数

puts()函数打印字符串

1.puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:puts(s);

2.puts()函数的作用与语printf("%sn", s)相同
    puts()函数只能输出字符串, 不能输出数值或进行格式变换
    可以将字符串直接写入puts()函数中。如:puts("Hello, Turbo C2.0");
main()

     {

          char s[20], *f;                 /*定义字符串数组和指针变量*/

          strcpy(s, "Hello! Turbo C2.0"); /*字符串数组变量赋值*/

          f="Thank you";                  /*字符串指针变量赋值*/

          puts(s);

          puts(f);

     }

四:常用字符串函数 

1.strlen()函数

返回给定字符串的长度,它不计算空字符''

#include <stdio.h>  
void main()  
{  
   char ch[20]={'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', ''};
   char doname[]="www.yiibai.com";  
   printf("Length of string is: %d",strlen(ch));  
   printf("Length of doname is: %d",strlen(doname));  
}

执行上面示例代码,得到以下结果

Length of string is: 10
Length of doname is: 14

2.strcpy(destination,source)函数

将源字符串(source)复制到目的(destination)字符串中

#include <stdio.h>  
void main()
{
    char ch[20] = { 'y', 'i', 'i', 'b', 'a', 'i', '.', 'c', 'o', 'm', '' };
    char ch2[20];
    strcpy(ch2, ch);
    printf("Value of second string is: %s n", ch2);
}

执行上面示例代码,得到以下结果

Value of second string is: yiibai.com

3.strcat(first_string, second_string)函数

连接两个字符串,结果返回到first_string

#include <stdio.h>  
void main()  
{  
   char ch[32]={'y', 'i', 'i', 'b', 'a','i', ''};  
   char ch2[10]={'.', 'c','o','m',''};  
   strcat(ch,ch2);  
   printf("Value of first string is: %s",ch);  
}

执行上面示例代码,得到以下结果

Value of first string is: yiibai.com

4.字符串拼接(strncat)函数

char *strncat (char* dest,const char* src, const size_t n);
    功能:将src字符串的前n个字符拼接到dest所指的字符串尾部。

    返回值:返回dest字符串的起始地址
        如果n大于等于字符串src的长度,那么将src全部追加到dest的尾部,如果n小于字符串src的长度,只追加src的前n个字符
        strncat会将dest字符串最后的0覆盖掉,字符追加完成后,再追加0
        dest要有足够的空间来容纳要拼接的字符串,否则可能会造成缓冲溢出的错误情况

5.strcmp(first_string, second_string)函数

比较两个字符串,如果两个字符串相等,则返回0

在这里,我们使用gets()函数从控制台读取两个字符串用来做比较

#include <stdio.h>  
void main()
{
    char str1[20], str2[20];

    while(1){
        printf("Enter 1st string: ");
        gets(str1);//reads string from console  
        printf("Enter 2nd string: ");
        gets(str2);
        if (strcmp(str1, str2) == 0)
            printf("Strings are equal n");
        else
            printf("Strings are not equal n");
    }
}

执行上面示例代码,得到以下结果

Enter 1st string: mystr
Enter 2nd string: mystr
Strings are equal
Enter 1st string: string1
Enter 2nd string: string2
Strings are not equal

6.strrev(string)函数

返回给定字符串的反转字符串

#include<stdio.h>  

void main() {
    char str[20];

    printf("Enter string: ");
    gets(str);//reads string from console  
    printf("String is: %s n", str);
    printf("nReverse String is: %s n", strrev(str));

}

执行上面示例代码,得到以下结果

Enter string: yiibai.com
String is: yiibai.com

Reverse String is: moc.iabiiy

7.strlwr(string)函数

返回给定字符串的小写形式

#include<stdio.h>  

void main() {
    char str[20];

    printf("Enter string: ");
    gets(str);//reads string from console  
    printf("String is: %s", str);
    printf("
Lower String is: %s", strlwr(str));

}

执行上面示例代码,得到以下结果

Enter string: YiiBai.com
String is: YiiBai.com
Lower String is: yiibai.com

8.strupr(string)函数

返回给定字符串的大写形式

#include<stdio.h>  

void main() {
    char str[20];

    printf("Enter string: ");
    gets(str);//reads string from console  
    printf("String is: %s",str);  
    printf("nUpper String is: %s n",strupr(str));  
}

执行上面示例代码,得到以下结果

Enter string: Yiibai.com
String is: Yiibai.com
Upper String is: YIIBAI.COM

最后

以上就是负责小天鹅为你收集整理的C字符串函数运用(strlen-strcpy-strcat-strncat-strcmp-strrev-strlwr-strupr-strchr-strstr)一:基本概念 二:声明打印字符串三:输入gets()打印puts()函数四:常用字符串函数 的全部内容,希望文章能够帮你解决C字符串函数运用(strlen-strcpy-strcat-strncat-strcmp-strrev-strlwr-strupr-strchr-strstr)一:基本概念 二:声明打印字符串三:输入gets()打印puts()函数四:常用字符串函数 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部