精华内容
下载资源
问答
  • c语言字符串类型转换

    2021-01-10 21:40:50
    c语言字符串类型转换 c标准库 - <stdlib.h> 目录c语言字符串类型转换atoi() -- 字符串转整数atol() -- 字符串转长整数atof() -- 字符串转浮点数strol() -- 字符串转长整数stroul() -- 字符串转无符号长整数...

    c语言字符串类型转换

    c标准库 - <stdlib.h>

    atoi() – 字符串转整数

    声明:
    int atoi(const char *str)

    如果没有执行有效的转换,则返回0

    举个栗子:

    // #include<stdio.h>
    // #include<stdlib.h>
    char str[] = "519";
    int a = atoi(str);
    a = a + 1;
    printf("%d",a);
    // 输出:520
    

    查看更多:https://www.runoob.com/cprogramming/c-function-atoi.html

    atol() – 字符串转长整数

    声明:
    long int atol(const char *str)

    查看更多:https://www.runoob.com/cprogramming/c-function-atol.html

    atof() – 字符串转浮点数

    声明:
    double atof(const char *str)

    查看更多:https://www.runoob.com/cprogramming/c-function-atof.html

    strol() – 字符串转长整数

    声明:
    long int strtol(const char *str, char **endptr, int base)

    参数解释:

    • str用于转换的字符串
    • endptr是一个传出参数,函数返回时指向后面未被识别的第一个字符。
    • 参数base代表采用的进制方式

    实例:

    char str[] = "65 It's a number";
    char *ptr;
    int num;
    num = strtol(str,&ptr,10);
    printf("%d\n",num);
    puts(ptr);
    
    /*输出:
    65
     It's a number
     */
    

    查看更多:
    https://www.runoob.com/cprogramming/c-function-strtol.html
    https://baike.baidu.com/item/strtol/6134558?fr=aladdin

    stroul() – 字符串转无符号长整数

    声明:
    unsigned long int strtoul(const char *str, char **endptr, int base)

    strol()类似

    查看更多:https://www.runoob.com/cprogramming/c-function-strtoul.html

    strod() – 字符串转浮点数

    声明:
    double strtod(const char *str, char **endptr)

    实例:

    char str[] = "3.14159 It's a number";
    char *ptr;
    double num;
    num = strtod(str,&ptr);
    printf("%lf\n",num);
    puts(ptr);
    
    /*输出:
    3.141590
     It's a number
    */
    

    查看更多:https://www.runoob.com/cprogramming/c-function-strtod.html

    sprintf() – 格式化输出到字符串

    这个函数是另一个标准库<stdio.h>

    声明:
    int sprintf(char *str, const char *format, ...)

    sprintf()printf()的用法相似,只不过不是格式化输出到屏幕,而是格式化输出到一个字符串变量

    实例:

    // include<stdio.h>
    char str[80];
    sprintf(str, "Pi 的值 = %f", 3.14159);
    puts(str);
    
    // 输出:Pi 的值 = 3.141590
    

    查看更多:https://www.runoob.com/cprogramming/c-function-sprintf.html

    拓展函数(非标准库函数)

    • itoa():将整型值转换为字符串。

    • ltoa():将长整型值转换为字符串。

    • ultoa():将无符号长整型值转换为字符串。

    • gcvt():将浮点型数转换为字符串,取四舍五入。

    • ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。

    • fcvt():指定位数为转换精度,其余同ecvt()。

    查看更多:https://www.runoob.com/w3cnote/c-int2str.html

    展开全文
  • C语言字符串类型题目

    2019-11-30 14:21:27
    其功能是统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看做单词分隔符),并将统计结果依次保存在b指向的数组中。 ⑵ 编写main()函数,采用数组定义的同时进行初始化的方式,将数据...
  • C语言 字符串类型转换

    千次阅读 2018-09-22 17:08:22
    今天正好用到这个,就在网上找了一下,看到了平台无关的通用的转换函数:sprintf()。 用法直接看代码 #include &lt;stdio.h&gt; void main() ... //将a,b,c以字符串的形式存入d sprintf(d...

    今天正好用到这个,就在网上找了一下,看到了平台无关的通用的转换函数:sprintf()。

    用法直接看代码

    #include <stdio.h>
    
    void main() 
    
    {
    
        int a = 42; 
        int b = 34;
        int c = 56;
        char d[10];
        //将a,b,c以字符串的形式存入d
        sprintf(d,"%d,%d,%d",a,b,c);
       
    }

    打印d的 结果为“42,34,56”

     

     

    展开全文
  • c语言字符串

    万次阅读 多人点赞 2018-12-05 14:04:48
    c语言字符串都是以“/0”结尾 而这里就有三个概念 EOF /0 -1 /n 首先c语言中所有字符串的结尾标志都是/0 是字符串结尾的标志 它是一种转义符 而EOF是文件流结束标志代表着 文件(file),也可以是标准输入...

    c语言字符串都是以“/0”结尾

    而这里就有三个概念 EOF /0  -1 /n

    首先c语言中所有字符串的结尾标志都是/0 是字符串结尾的标志 它是一种转义符 而EOF是文件流结束标志代表着 文件(file),也可以是标准输入(stdin)的输入结束 而我们都知道大多数程序EOF的传递是靠-1这个返回值控制的  就相当于 #define EOF (-1) (在stdio.h中是这样定义的) 而'\n'表示换行符,通常用作一些读取函数的读取结束标志,比如scanf,getchar(),gets()等,一旦遇到'\n'就结束读取并返回 

    呢么就涉及到了几个函数 

    getchar() 它能读取任何 字符(只要是在ACSII上的)如回车(ACSII码值:10)、换行(13)、null(\0)都可以,所以我要做的是判断,而和gets(直至接受到换行符或EOF,换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串)和scanf(tab,空格,换行,回车都作为结束符)都不同

    scanf()具体的高级用法可以看这篇https://www.cnblogs.com/windpiaoxue/p/9184194.html

    这两个函数主要的区别就是getchar()只能获取一个字符但是scnf()能获取字符串 并且可以通过%s %c %d等等 的操作来限制输入形式
    gets() 

    # include <stdio.h>
    int main(void)
    {
        char str[20] = "\0";  //字符数组初始化\0
        printf("请输入字符串:");
        gets(str);
        printf("%s\n", str);
        return 0;
    }

    此外,关于使用 gets() 函数需要注意:使用 gets() 时,系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符。这就意味着,如果前面使用过 gets(),而后面又要从键盘给字符变量赋值的话就不需要吸收回车清空缓冲区了,因为缓冲区的回车已经被 gets() 取出来扔掉了。

    在c语言中没有字符串类型 通过字符数组来模拟字符串

    字符数组的初始化

    1.指定长度

    char buf[4] = {'a','b','c','d'};
    char buf[100] = {'a'};//剩下的未定义的全部为0

    2.不指定长度

    char buf[] = {'a'};//需要多少分配多少


       要区分一个问题就是字符串的长度要加上/0

    #include<stdio.h>
    //#include<string.h>
    void main()
    {
    int size = 0;
    char buf[] = "abcd";
    int len = strlen(buf);
    printf("%d\n",len);
    size = sizeof(buf);
    printf("%d",size);
    }

    #include<stdio.h>
    #include<string.h>
    void main()
    {
    int size = 0;
    char buf[128] = "abcd";
    int len = strlen(buf);
    printf("%d\n",len);
    size = sizeof(buf);
    printf("%d",size);
    }

    所以我们可以发现strlen始终是将字符数组当做出去/0的长度输出

    但是size是把这个字符数组当做一个数组看待但是数组的值

    sizeof(...) strlen(...)的区别

        sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
        它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
        由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。
        具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:
        数组——编译时分配的数组空间大小;
        指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);
        类型——该类型所占的空间大小;
        对象——对象的实际占用空间大小;
        函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。
    strlen
        strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
        它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。

    从这张图我们就可以看出sizeof是高亮字体 而strlen只是一个函数

    字符串在内存分配 堆上栈上 全局区

    字符串的copy

    #include<stdio.h>
    
    int main()
    {
    char a[] = "i am student.";
    char b[64];
    int i = 0;
    
    for(i = 0;*(a + i)!='\0';i++)
    {
        *(b + i) = *(a + i);
    }
    
    //\0未被copy
    
    b[i] = '\0';
    printf("a:%s\n",a);
    printf("b:%s\n",b);
    return 0;
    }

     假如不加上b[i] = '\0';

    利用指针封装函数完成copy 

    #include<stdio.h>
    #include<stdlib.h>
    
    void copy_str(char *from,char *to)
    {
    for(;*from != '\0';from++,to++ )
    {
        *to = *from;
    }
    *to = '\0';
    return ;
    }
    
    int main()
    {
    char *from = "abcd";
    char buf2[100];
    copy_str(from,buf2);
    printf("buf2:%s\n",buf2);
    system("pause");
    return 0;
    }

    展开全文
  • C语言字符串

    千次阅读 2019-04-02 10:41:15
    C语言提供了多个标准函数来对字符串进行各种基本处理 使用这些标准函数需要包含string.h头文件 strlen 该函数用来计算字符串中有效字符个数(不包含’\0’) strcpy 该函数可以把一个给定字符串中的所有字符依次拷贝到...

    一.字符串

    3.字符串相关库函数

    C语言提供了多个标准函数来对字符串进行各种基本处理

    使用这些标准函数需要包含string.h头文件

    strlen 该函数用来计算字符串中有效字符个数(不包含’\0’)

    strcpy 该函数可以把一个给定字符串中的所有字符依次拷贝到一个字符数组中

    strncpy 该函数可以把一个给定字符串中的前n个字符依次拷贝到一个字符数组中

    strcat 可以把一个给定的字符串合并到某个字符数组中字符串的末尾,在最后添加结束符

    strncat 可以把一个给定字符串的前n个字符并到某个字符数组中字符串的末尾

    strcmp 可以用来比较两个字符串的内容是否一样,一样返回0,不一样返回非0

                    返回正数表示前一个字符串大
    
                    返回负数表示后一个字符串大
    
              注:所谓的大小指的是第一个不同字符ASCII码值的大小
    

    strncmp 可以用来比较两个字符串的前n个字符是否一样,一样返回0,不一样返回非0

    注:不要使用scanf和gets函数读取键盘输入的字符串,而应该是用fgets

    4.多个相关字符串的表示和保存

    可以采用字符类型的二维数组来记录和表示多个相关的字符串

    这种表示方式会造成空间浪费,而且使用起来不灵活

    使用字符类型的指针数组来表示多个相关的字符串更加灵活,使用更加方便,也不会造成空间浪费

    注:二维数组名的类型和二维数组指针的类型相对应,指针类型数组名和二级指针类型相对应

    展开全文
  • C语言字符串赋值

    2021-03-06 12:50:16
    C语言字符串赋值 #include <stdio.h> int main() { char s[10]; s = "string"; //main.c:14:7: error: assignment to expression with array type //s = "string"; char *sp; *sp = "string"; //...
  • c语言字符串详解

    千次阅读 多人点赞 2018-09-16 18:59:04
    c语言字符串的两种处理方式,c语言处理字符串一般使用字符数组来处理,记得加上结束符,否则会出现乱码。 1、通过字符数组来处理 #include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt; #include &...
  • C语言字符串处理函数整理版本,包含字符串基本操作,字符串类型转换、字符检查、输入输出流、输入输出流分割、异常处理等
  • C语言字符串与结构体

    千次阅读 2017-07-09 15:48:07
    C语言字符串与结构体
  • C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在《C语言字符数组和字符串》中已经进行了详细讲解,这里不妨再来演示一下: #include <stdio.h>int main(){ char str[] = ...
  • C语言字符串常用操作函数C语言字符串、文件操作常用操作函数标准输入/输出重定向文件操作补充 C语言字符串、文件操作常用操作函数 字符串输出 - puts int puts(const char *str) 字符串写入到标准输出 stdout 字符...
  • c语言中的字符串类型

    千次阅读 2021-02-18 10:13:43
    c语言中的字符串类型c语言中的字符串类型c语言中的字符串类型
  • C语言字符串的比较

    2021-04-19 23:54:31
    C语言字符串的比较(顺便讲下其他数据的比较) 上节我们介绍了表示真假的bool类型。 本节我们讲一下C语言字符串的比较。 之前我们讲过C++字符串的比较方式,很简单,使用比较运算符直接进行比较就行 < <= &...
  • c语言字符串的初始化

    千次阅读 2020-09-30 20:30:01
    预习C语言字符串语法的一点点总结: c语言字符串的两种形式及其初始化 ·字符数组(定义时就初始化是个好习惯,否则可能会有bug的惊喜) 第一种初始化 char ch[6]={'h','e','l','l','o'} ,也可以写成char ch[]=...
  • C语言字符串赋值的方法

    千次阅读 多人点赞 2020-09-13 10:57:40
    首先,C语言没有向C++,Java,python等面向对象的语言中string这样的字符串类型C语言中的字符串是存放在字符型数组中的 C语言中,常见的3种字符串赋值有如下: 1、通过字符数组直接初始化 int main() { char str...
  • 29.1.C语言没有原生字符串类型 29.2.C语言中字符串的本质 29.3.字符串指针和字符串本身 29.4.字符数组及字符串初始化与sizeof及strlen 29.5.字符数组与字符串的本质差异
  • C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在《C语言字符数组和字符串》中已经进行了详细讲解,这里不妨再来演示一下: #include int main(){ char str[] = ...
  • 首先点出一个错误观点就是 ...C语言里面没有String类型,CPP,Java,VB等语言中才使用了String类型来描述字符串C语言是使用字符数组来描述字符串,也没有像是JAVA一样方便的字符串连接方式,str1+str2
  • C语言字符串使用指南

    千次阅读 2020-05-14 21:56:37
    C语言里边是没有字符串数据类型的,但在平时开发中肯定是少不了字符串操作的。因为字符串都是有字符组成的,所以在C语言字符串是通过一维字符数组来实现的。 ...
  • C语言字符串使用注意事项

    千次阅读 2014-09-30 14:25:03
    C语言字符串使用注意事项
  • ![图片说明](https://img-ask.csdn.net/upload/201506/20/1434768926_456254.jpg) 题目要求使用C语言编译程序。
  • c语言字符串与数字转换函数
  • C语言字符串删除子串

    千次阅读 2019-10-31 09:34:21
    C语言字符串删除子串 #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> int main() { char* a = “ABCDEFG”; char* b = “ABCDE”; char* c; ...
  • C语言字符串分割

    万次阅读 2018-12-31 14:34:49
    C语言中,内置的函数库中除了可以用strtok()来对字符串进行分割之外,还可以用sscannf()对字符串进行分割。 sscanf() 包含的头文件 stdio.h 原型 int sscanf(const char *str, const char *format, ...) 实例: ...
  • C语言中没有特定的字符串类型,通常是将字符串放在一个字符数组中,这里不妨演示一下: #include <stdio.h> #include <string.h> int main() { char str[] = "https://www.csdn.net"; int len = ...
  • C语言 字符串处理

    千次阅读 2019-03-27 21:59:57
    函数 描述 参数 返回 ...字符串s的长度,size_t为unsigned int类型 char *strcpy(char *dest, const char *src); 把src所指向的字符串复制到dest所指向的空间中,’\0’也会拷贝过去 d...
  • C语言字符串输出中文乱码

    千次阅读 2019-11-30 00:37:27
    字符串复制输出字符串中文乱码,字符串长度大于复制的字符串,未加'\0'结束标志

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 225,918
精华内容 90,367
关键字:

c语言字符串类型

c语言 订阅