C语言-字符和字符串专题-输入输出、字符(串)数组和字符(串)函数-学习笔记07

C语言-字符和字符串专题-输入输出、字符(串)数组和字符(串)函数-学习笔记07,第1张

文章目录
  • 1. 字符串输入与输出
    • 1.1 字符串的输入函数(gets)
    • 1.2 字符串的输出函数(puts)
  • 2. 字符数组
  • 3. 字符串数组
  • 4. 常用字符串函数
    • 4.1 求字符串长度(strlen)
    • 4.2 字符串拷贝(strcpy)
    • 4.3 字符串连接(strcat)
    • 4.4 字符串比较(strcmp)
    • 4.5 字符串与字符函数的扩展用法

1. 字符串输入与输出 1.1 字符串的输入函数(gets)
  • char * gets(char *s)
  • 字符串的最后个字符是gets,要注意数据长度
  • scanf函数不会让空格成为字符串的结束标志,而scanf会, %c需要char配合才能正常输入
    [ s5];0 \\只能存四个字符,因为最后个字符是 \gets
    ()spritnf
    ("%s\n",) s;puts(string);
    
1.2 字符串的输出函数(puts)
  • puts()
  • printf()puts()不一样的是\n会自动换行不需要char c[10], ch[3][4];
2. 字符数组
  • 用法:{'a', 'b', 'c', '
  • 逐个字符赋值:
  • '}=="abc"
  • 字符数组的初始化:首先我们需要知道char
      [
    	5 ch]='h',{'e', 'l', 'l', 'o'; }//完整赋值char [
    	5 ch]='b',{'o', 'y'} ;//部分赋值,那ch[3], ch[4]都是字符串,NULLb o
    
  • 用字符串常量:
  • //三种方法都可以char[]
    yASCII981111210
    0
      =
    "HELLO"
    ; chchar[6]=
    "HELLO" ch;char[6]=
    "HELLO" ch};
  • 举个例子:在内存中占6个字节,字符串长度5
  • 字符串{hel
    • 注意:在打印字符数组的时候我们可以将其当做字符串来打印,但是我们需要注意的是这个字符数组的最后一位得是l。否则,会随着地址一直往下打印直到找到o
3. 字符串数组
  • C语言中无字符串变量,而是用字符数组并以ASCII结尾当做字符串。
  • 104
char[][7]="apple",
1011081081110
  • 举个二维数组的例子
    "orange" fruit,"grape"};水果0{11 23 456
    
include...char[20];int,;printf("Please input a string: ")
fruit[0]applefruit[1]or
angefruit[2]grap
e#
  • 例子:输入一个字符串,然后逆序输出
    ;gets 
    
    ();
    
    = arrstrlen()for
    ( i= n;
    0;--)putchar
    ([arr])
    n; putchar(arr'\n'
    ) ;istrlen(字符数组)nman strlen i>=\xhhchar s[]="\x691" i
         
          
           
            
             →
            
           
           
            \rightarrow
           
          
         
    	iaarr\dddistrlen(s)char[
    10]='A',
    
4. 常用字符串函数
  • 首先我们要先引入# include
4.1 求字符串长度(strlen)
  • 用法:',',我们可以通过'B'查询细节
  • 求字符串长度,且,不包括在内。
  • 'C':表示十六进制数代表的符号,举个例子在字符串中,',''D'};
  • printf:表示8进制
  • 练习:对于以下字符串,(的值为:
    "strlen: %ld, sizeof: %ld\n" s,strlen( ) {,sizeof () /sizeof (char )) ;//strlen: 1, sizeof: 10char 
    []="\t\v\;will\n" //长度为3chars[] ="\x691\n"s;//长度为3strcpy(目标字符串, 需拷贝的字符串)
          
           
            
             
              ≥
             
            
            
             \ge
            
           
          
  • 硬拷贝
  • char [ ] s="strcpy",[10 ] ; sstrcpy(,); puts
4.2 字符串拷贝(strcpy)
  • 用法:(

  • 返回:目标字符串的首地址

  • 要求:目标字符串的长度需);//strcpy需拷贝的字符串长度

  • 注意:

      puts
    • 拷贝时,(会一起拷贝
  • 例子

    ) src;//strcpy[0] dest='a';puts
    ()dest; src//strcpyputs
    ()src;//atrcpy strcat(string1, string2)
    string2string1deststring1string1 string2
    deststring1string2string2 char [10
    ]=src"abcas", [
    ]=dest"123"; strcat
    
4.3 字符串连接(strcat)
  • 用法:(
  • ,连在)的后面
  • 返回;的首字母
  • 要求:
    • puts需要足够大能放的下(
    • 需要取消);,连接strcmp(string1, string2),保留
    • 作用: 比较两个字符串
    • string1
  • 举个例子
    string2 deststring1string2-1 string1 string21 srcstring1string2 0 函数类型函数
    用法字符串deststrncpy(p, p1, n) srcp1拷贝给p,并指定复制的长度
    strncat(p, p1, n)p1连在p的后面,并指定连的长度deststrncmp(p, p1, n)
    
4.4 字符串比较(strcmp)
  • 用法:比较指定长度字符串
  • 比较的方法:从左往右逐字比较,直到遇到不同字符或strcasecmp(p, p1)(如果忽略大小写比较字符串先遇到,则strchr(string, ch)大。因为strchr(s1, ch)-s1的ASCII值是0)
  • 返回:int整型
    • <strrchr(string, ch):返回负整数在字符串中查找指定字符,返回最后一个在该字符串中出现的地址,没找到返回空
    • >strstr(p, p1):返回正整数查找字符串
    • 字符函数==isalpha(ch):返回检查是否为字母字符(不是字符串,是单个字符 )
4.5 字符串与字符函数的扩展用法
isupper(ch)检查是否为大写字母字符
islower(ch)检查是否为小写字母字符
isdigit(ch)检查该字符是否为数字
toupper(ch)变大写
tolower(ch)变小写
在字符串中查找指定字符,返回第一个在该字符串中出现的地址,没找到返回空
找出一个字符在字符串中的位置:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/921614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存