美文网首页
C语言中的字符串

C语言中的字符串

作者: simonycshi | 来源:发表于2019-03-17 20:51 被阅读0次

字符串:以字符 '\0'(ASCII值为0的一个特殊标识符)结尾的字符(char)数组
不是所有的字符数组都是字符串,字符串都是特殊的字符数组

char greet[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char greet[] = "Hello";
char *greet = "Hello";

内存结构.jpeg

输入 / 打印字符串

  1. 打印字符串的单个字符(%c):
char *greet = "Hello";
printf("%c %c\n", greet[0], greet[1]);
//输出:H e
  1. 打印字符串(%s):
  • new_greet是字符数组名(指向第一个元素的指针)
char new_greet[] = "Hello World"; 
printf("%s\n", new_greet);
//输出:Hello World
  1. 输入字符串(%s):
  • 会跳过开头的任意空格
  • 当出现空格或者EOF时结束
  • 自动在末尾插入'\0'
scanf("%s", word);

strcpy 函数

strcpy(s1, s2);

  • 将s2的值拷贝给s1,目标字符串必须有足够的空间来存放原字符串(包括'\0'),否则会有缓存溢出的风险
  • 不能使用 '=' 来复制(仅拷贝的同一个字符串的地址)
#define LEN 12 
char greet_one[] = "Hello World"; 
char new_str[LEN]; 
strcpy(new_str, greet_one); 
printf("%s\n", new_str); 
strcpy(new_str, "Good Bye"); 
printf("%s\n", new_str);
//输出
//Hello World
//Good Bye

strlen 函数

strlen(s1);

  • 计算字符串长度,不计算末尾的'\0'

    char new_greet[] = "Hello World"; 
    printf("Length = %d\n", strlen(new_greet));
    //输出:Length = 11
    

strcmp 函数

strcmp(s1, s2) ;

  • 比较两个字符串是否相同,相同就返回0,s1 < s2则返回负数,s1 > s2则返回正数

  • 比较方式是逐个比较每一位的ASCII码数值

  • 不能使用"=="比较

    char greet_one[] = "Hello World"; 
    char greet_two[] = "Hello WORLD"; 
    if (strcmp(greet_one, greet_two) == 0)
          printf("Strings are identical.\n"); 
    else
          printf("Strings are not identical.\n");
    //输出:Strings are not identical.
    

其余的 <string.h> 库函数

  • strcat(s1, s2) : 将s2链接到s1的末尾
  • strchr(s1, ch):返回一个指向字符ch第一次在s1中出现位置的指针
  • strstr(s1, s2):返回一个指向字符串s2第一次在s1中出现位置的指针

相关文章

  • C语言- 字符、字符数组

    字符数组和字符串 C语言中没有字符串这种数据类型,C语言中通过char型数组来替代字符串的功能。C语言中的字符串一...

  • 字符串类常用操作方法

    一、不可变字符串(NSString) // 在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有...

  • iOS字符串常用方法

    一、不可变字符串(NSString) //在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有专门...

  • NSString字符串

    NSString:不可变字符串 NSMutableString:可变字符串 //c语言中的字符串 char *s ...

  • NSString字符串

    NSString:不可变字符串 NSMutableString:可变字符串 //c语言中的字符串 char *s ...

  • C++ 字符串

    C语言中字符串 char * ch=[], strlen() #include C++ 中 st...

  • strlen, sizeof(), length的区别

    strlen C,C++语言中的函数,用于计算当前指针变量 const char * (字符串)的字符串长度,以\...

  • 6.PHP字符串

    字符串的处理介绍 字符串的处理方式 在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。...

  • 2018-05-13

    C语言:c语言中没有字符串类型,也没有字符串变量,字符串是放在字符型数组中的。 C语言数变量类型:整型、浮点型、v...

  • Redis数据结构

    1 简单动态字符串 Redis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空...

网友评论

      本文标题:C语言中的字符串

      本文链接:https://www.haomeiwen.com/subject/owzumqtx.html