zoukankan      html  css  js  c++  java
  • C-字符串

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char a[]={'H','e','l','l','o'};   //定义了一个字符数组
        char b[]={'H','e','l','l','o',''};   //定义了一个字符串
        //字符串以结尾,字符串不包含
        char *str="wo is liming";  //字符串变量 ,这种方式是不能修改的,用指针方式时,字符串放到了常量区(const) 
        char *str1="wo is liming";  //str的地址和str1的地址是一样的 
        char word[]="world";  //字符串变量,这种方式可以修改 
        char line[10]="hello";  //字符串变量
        //需要6个字节空间,因为结尾有 
        
        word[0]='B';  //修改某字符
        char *str2;
        str2=str;  //传址 
        printf("%s
    ",word);  //输出一个单词 
        
        
        
        
        return 0;
    }
    char a[] = "liming";
    a = "lm";//不能这样修改值,a是const
        char s[50];
        strcpy(s,"liming");  //给字符串赋值 
        char aa[3][5];  //字符数组
        char a[][5] ={{'1','2','3','4'},{'a','b','c','d',''}};//字符数组
        
        printf("%s
    ",a[1]);
        char *b[]={"12345","abcde"};  //每个b[n]就是一个 char * 
        printf("%s
    ",b[0]);
    #include <stdio.h>
    
    int main ()
    {
       
       int ch=getchar();//从标准输入stdin(控制台)获取一个字符(一个无符号字符)
       //需要include <stdio.h> 
       //返回值:字符的ASCii码
       //如果到达文件末尾或发生读错误,则返回 EOF=-1 
       //对于win系统  CTRL+Z=EOF 
       printf("%d
    ",ch);
        int x=putchar(ch); //把参数char指定的字符(一个无符号字符)写入到标准输出stdout(控制台)中
        //需要include <stdio.h> 
        //参数:可以是字符,也可以是字符的ASCii码
        //返回值:ASCii码;如果发生错误则返回 EOF=-1 
        printf("%d
    ",x);
           
       
       return(0);
    }
    //需要  #include <string.h> 
       char str[50]="wo is 李明";
       int len;
    
       len = strlen(str); //计算字符串str的长度(字节),直到空结束字符,但不包括空结束字符
       //因为C语言是ANSI编码----一个汉字是两个字节 
       printf("|%s| 的长度是 |%d|
    ", str, len);
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
    //需要 #include <string.h>
    char str1[50]="wo is liming";
    char str2[15]="AB CD";
    char *str3;
    
    int x = strcmp(str1, str2); //比较两个字符串
    //如果返回值小于 0,则表示 str1 小于 str2。
    //如果返回值大于 0,则表示 str1 大于 str2。
    //如果返回值等于 0,则表示 str1 等于 str2
    //区分大小写 
    
    int y = strncmp(str1, str2,3);
    //参数3:比较前n个
    //区分大小写 
    
    char s1[10]="liming";
    char s2[10]="liMing";
    int z = strcasecmp(s1, s2);//比较两个字符串
    //忽略大小写 
    
    printf("%d",z);
    
    return(0);
    }
        char str1[50]="wo is liming";
       char str2[15]="AB CD";
       char *str3;
          
       //str3=strcpy(str1, str2); //字符串复制 
        //把str2复制到str1,包括结尾的 
        //str1的空间要大于等于str2 ,两个空间不能有重叠 
        //返回值:指向str1的指针   str3=str1
        //这个语句是不安全的
        
        int len1=strlen(str1);
        int len2=strlen(str2);
        str3=strncpy(str1, str2,len1-len2); //这个语句是安全的
        
        int i=strlen(str1) ;
        for(int x=0;x<i;x++){
            printf("%c",str1[x]);
        }
        
        printf("%p
    ",str1);
        printf("%p
    ",str3);
       char str1[50]="wo is liming";
       char str2[15]="AB CD";
       char *str3;
          
       //str3=strcat(str1, str2); //把src2所指向的字符串追加到str1所指向的字符串的结尾
        //str1的空间要大于等于str2+str1 
        //返回值:指向str1的指针   str3=str1
        //这个语句是不安全的
        
        int len1=strlen(str1);
        int len2=strlen(str2);
        str3=strncat(str1, str2,len1-len2);  //这个语句是安全的
        //参数3:最多追加的字符数 
        
        int i=strlen(str1) ;
        for(int x=0;x<i;x++){
            printf("%c",str1[x]);
        }
        
        printf("%p
    ",str1);
        printf("%p
    ",str3);
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h> 
    
    int main ()
    {
       
        char str[50]="wo is liming,wosijiaosi";
         const char ch = 'i';
         char *ret;
         ret = strchr(str, ch);//在字符串str中搜索第一次出现字符ch的位置,--从左往右找 
         //返回值:找到的指针,如果未找到该字符则返回 NULL 
              
         printf("%p
    ",ret);
         printf("%p
    ",str);
         printf("%d
    ",ret-str);// 找到位置的索引号 
         printf("%s
    ",ret); //找到位置开始往后的字符串 
         //is liming,wosijiaosi
         //ret = strchr(ret+1, ch); //寻找第二个字符 
         char *t=(char *)malloc(strlen(ret)+1);
         strcpy(t, ret);  //找到位置开始往后的字符串复制到t
         printf("%s
    ",t);
         free(t); 
              
         
         ret = strrchr(str, ch);//在str字符串中搜索最后一次出现字符ch(一个无符号字符)的位置
         //返回值:找到的指针,如果未找到该字符则返回 NULL
         printf("%p
    ",ret);
         printf("%p
    ",str);
         printf("%d
    ",ret-str);
         
       
       return(0);
    }
    #include <stdio.h>
    #include <string.h>
    
    
    int main ()
    {
       
        char s1[50]="wo is liming,wosijiaosi";
        char s2[50]="liming";
        char s3[50]="liMing";
        char *p=strstr(s1, s2);//在字符串s1中查找第一次出现字符串s2的位置,不包含终止符
        //返回值:找到位置的指针,如果未找到则返回 null 
        //区分大小写 
        
        //char *pp=strcasestr(s1, s3);   //忽略大小写  ?????? 
        
        printf("%s",pp);
        
        
         
       
       return(0);
    }
    #include <stdio.h>
    
    int main()
    {
       char str[80];
    
       sprintf(str, "Pi 的值 = %f", 3.141593); //格式化字符串
       //参数1:str -- 字符数组的指针 
       //参数2:要被写入到字符串 str 的文本 
       printf("%s
    ",str);
       
       return(0);
    }

  • 相关阅读:
    LeetCode: Maximum Product Subarray 解题报告
    LeetCode: Populating Next Right Pointers in Each Node II 解题报告
    LeetCode: Populating Next Right Pointers in Each Node 解题报告
    LeetCode: Word Search 解题报告
    C语言文件操作
    多线程
    C语言函数指针的使用
    进程
    网络编程
    进程间通信——管道通信
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13354396.html
Copyright © 2011-2022 走看看