美文网首页
C语言字符串

C语言字符串

作者: RubyiOS | 来源:发表于2018-03-22 16:19 被阅读0次

    "h",表示2个字符'h',和'\0';占两个字节'h',表示一个数字在内存中,占4个字节

    1.当我们写"Hello"时就是告诉编译器,在只读数据段存储6个字符,包括'\0'尾0,有效字节长不包含尾0

    2."hello"表达式的值,表示字符串第一个字符的地址

    int main(void){

            char *a = "Hello World";

            a[0] = "h";//会报错,只读数据段的数值不能修改

            char[64] = "Hello World"; //把当前字符串复制到数组中,其他位补0;

            char[0] = "h";//这样是可以的

            printf("%s\n",a);

            printf("%c\n",*"Hello World");  //H

    }

    #include <stdio.h>

    #include<string.h>

    int main(void){

            char *p = "hello";

            printf("%ld\n",strlen(p));//传入字符串首地址,返回有效字符长//5

    //"hello\0word" 有效长度也是5,遇见尾0就结束了

            return 0;

    }

    #include<stdio.h>

    #include<stdlib.h>

    int main(void){

            int a1 = atoi("123");

            int a2 = atoi("-123");

            int a3 = atoi("123s123");

            int a4 = atoi("-123-123"); //字符串转数字 遇到非法字符立即停止,负号只允许出现在首位

            printf("%d%d%d%d",a1,a2,a3,a4); //123,-123,123,-123

            return 0;

    }

    strcmp 比较字符串大小:strcmp(a,b);a大返回正数,b大返回负数,相等返回0

    char *p = "123";

        char buf[64] = '456';

        strcpy(buf, p);  //把p拷贝到buf,buf必须有足够的空间

        printf("%s",buf);  //123

    strcat(buf,p);  //把p拼接到buf后边,buf的空间必须足够容纳拼接之后的字符串

    strstr函数:char *p = "Hello World";

                        char *q = "W";

                        char ret = strstr(p,q);

                        if(ret != NULL){

                                printf("%s\n",ret); //World,W第一次出现的位置

                        }

    字符串分割:strtok(char *restrict str, const char *restrict rep )

    char buf[] = "I am a so good man";  //可变字符串可以分割

    char *p = "I am a so good man";

    char *ret = strtok(bud," "); // 分割出来I

    ret = strtok(NULL," "); //传空表示继续分割之前的字符串//am

    ret = strtok(p," ");//传的不是空,表示分割新的字符串,但是不能分割

    相关文章

      网友评论

          本文标题:C语言字符串

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