精华内容
下载资源
问答
  • C语言结构体字符串赋值

    千次阅读 2019-07-08 17:15:40
    struct student { char name[20]; }; #include <stdio.h> main() { struct student s1; s1.name = "zhang"; printf("%s\n", s1.name);...以上的代码,编译会提示出错,因为在C结构体中,...

    struct student 

    {

     

     char name[20];

    };

    #include <stdio.h>

    main()

    {

        struct student s1;

        s1.name = "zhang";

        printf("%s\n", s1.name);

        return 0;

    }

    以上的代码,编译会提示出错,因为在C结构体中,字符串不能直接这样赋值,需要用字符串拷贝语句strcpy,如下代码:

    struct student 

    {

        char name[20];

    };

    #include <stdio.h>

    #include <string.h>

    main()

    {

        struct student s1;

        strcpy(s1.name, "zhang");

        printf("%s\n", s1.name);

        return 0;

    }

    这样结构体中字符串就可以正常输出了

    展开全文
  • c语言结构体字符串赋值

    万次阅读 2017-05-15 22:57:44
    struct student  {  char name[20]; }; #include main() {  struct student s1;  s1.name = "zhang";...上面的这个代码会报错,原因是因为在c的结构体中,字符串不能直接这样赋值,需要

    struct student 

    {

        char name[20];

    };

    #include <stdio.h>

    main()

    {

        struct student s1;

        s1.name = "zhang";

        printf("%s\n", s1.name);

        return 0;

    }

    上面的这个代码会报错,原因是因为在c的结构体中,字符串不能直接这样赋值,需要用到string中的拷贝语句。如下:

    struct student 

    {

        char name[20];

    };

    #include <stdio.h>

    #include <string.h>

    main()

    {

        struct student s1;

        strcpy(s1.name, "zhang");

        printf("%s\n", s1.name);

        return 0;

    }

    这个程序就可以正常输出。然而,还有一种简单的赋值方法

    struct student 

    {     

        int id;

        char name[20];

    };

    #include <stdio.h>

    main()

    {

        struct student s1;

        s1 = {1, "zhang"};

        printf("%s\n", s1.name);

        return 0;

    }

    正常输出。


    展开全文
  • 结构体直接赋值的时候,整体即使是字符串也可以 11 printf( " %d,%s " ,o2.num,o2.str); 12 13 // o2.str = o2.str;这个时候是指针常量 字符串不能直接赋值 14 15 // 字符串赋值方式 16 ...
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 struct dangdang
     5 {
     6     char email[30];
     7     char name[30];
     8     char addr[100];
     9     int num;
    10     int bugnum;
    11     char tel[20];
    12     char phone[20];
    13     double RMB;
    14     int dangdang;//成员名可以和类名同名
    15 }dx,dy= {
    16         "1111dfd1f@dfd",
    17         "lala",
    18         "chongq",
    19         54,
    20         543532656,
    21         54.32,
    22     };
    23 
    24 void main()
    25 {
    26     dx=dy;
    27     printf("%s",dx.name);
    28     //结构体变量可以直接赋值 
    29     //但是必须是同一个类型
    30 
    31 }
     1 struct ours
     2 {
     3     int num;//结构体类型定义的时候不能复初值
     4     char str[100];
     5 };
     6 
     7 void main()
     8 {
     9     struct ours ol = {10,"hello"};
    10     struct ours o2 = ol;//结构体直接赋值的时候,整体即使是字符串也可以
    11     printf("%d,%s",o2.num,o2.str);
    12 
    13     //o2.str = o2.str;这个时候是指针常量 字符串不能直接赋值
    14 
    15     //字符串的赋值方式
    16     sprintf(ol.str,o2.str);
    17     strcpy(ol.str,o2.str);
    18 
    19     getchar();
    20 }

    注意:

    1结构体直接赋值的时候,整体即使是字符串也可以

    2o2.str = o2.str;这个时候是指针常量 字符串不能直接赋值

    3字符串的赋值方式
     sprintf(ol.str,o2.str);
     strcpy(ol.str,o2.str);

    4结构体类型定义的时候不能复初值

     

    转载于:https://www.cnblogs.com/lanjianhappy/p/6011465.html

    展开全文
  • 关于结构体字符串赋值问题

    千次阅读 2018-10-07 14:10:15
    先看错误的代码 #include&lt;stdio.h&gt; typedef struct ...//出问题,C语言结构体赋值不能直接这样做! a.i=8;//但是不是数组可以 return 0; } 这里给出几个解决方案: ...

    先看错误的代码

     
    #include<stdio.h>
    typedef struct 
    {
    	char name[20];
    	int i;
     
    }Book;
    
    int main()
    {
    	Book a;
    	a.name="android";//出问题,C语言中结构体赋值不能直接这样做!
    	a.i=8;//但是不是数组可以
    
    	return  0;
    } 
    

    这里给出几个解决方案:

    1:将数组改成指针:

    #include<stdio.h>
    typedef struct
    {
    	char *name;   //那就不用数组,改成指针就没毛病
    	int i;
    }Book;
    
    int main()
    {
    	Book a;
    	a.name="android";
    	a.i=8;
    	return 0;
    }

    2:使用scanf输入:

    #include<stdio.h>
    typedef struct
    {
    	char name[20];
    	int i;
    }Book;
    
    int main()
    {
    	Book a;
    
    	scanf("%s",&a.name );//实际上这样做也没毛病!我也有点纳闷。后面知道在回复!
    
    	a.i=8;
    	return 0;
    }

    3:定义时赋初值:

    #include<stdio.h>
    typedef struct
    {
    	char name[20];
    	int i;
    }Book;
    
    int main()
    {
    	Book a={"android",8};//只能在定义时这样做,下面错误示例
    
        //Book a;
        //a={"android",8};    这样不允许
    
    	a.i=8;
    	return 0;
    }

    4:使用#include <string.h>里面的拷贝函数

    #include<stdio.h>
    #include<string.h>
    typedef struct
    {
    	char name[20];
    	int i;
    }Book;
    
    int main()
    {
    	Book a;
    	strcpy(a.name,"android");  //这样做也不错的选择
    	a.i=8;
    	return 0;
    }

     

    展开全文
  • 数组定义: char acBuf[sizeof(TRANS_HEAD_S) + sizeof(USER_HEAD_S) + 4] = {0};...结构体定义: typedef struct { int iOne; int iTwo; int iThr; }TRANS_HEAD_S; typedef struct { int iUser; }USER...
  • C语言结构体

    2021-01-19 16:02:39
      在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,因为数据类型不同,显然不能用一个数组来存放这些信息。这就需要使用到结构体来存储信息。   ...
  • #include #include struct Node ...把str2的字符串赋值给str1.20是指定字符的长度。   补充一个判断字符串是否相等的函数 strcmp(str1,str2); 判断st1和str2是否相等,如果相等则返回0.
  • 结构体中,字符串选项是用字符数组表示好,还是用... 该结构体中name用的是指针而不是数组,所以需要给字符串在堆上申请内存然后再赋值;sex字符串用的是字符数组,因此可以给其赋值; 用字符指针的优势是:字...
  • 结构体中字符数组赋值字符串问题

    万次阅读 多人点赞 2017-08-11 14:00:31
    今天在看结构体变量时发现一个问题: 问题代码如下 int main() {  struct student{  char c[20];  }s1;  s1.c="china";  printf("%s",s1.c);  return 0; } 输出结果为空,不知道是为...C语言只有在定义字符
  • 写一个函数,传入结构体的指针,然后在函数中对结构体的每一个成员根据其类型,使用Json类库的赋值方法,直接或间接创建Json子对象,组成一个内存树状结构,最后调用Json类库的方法生成字符串。这样的做法似乎比较...
  • c语言结构体知识点

    2020-10-04 20:45:43
    一、strlen和sizeof的区别 #include<...注意这个字符串的长度用strlen来求的话,我们就不用算后面的\0,但是用sizeof来算的话就要算入\0. ‘0’ASCII不为0,但是’\0’的为空值。 字符赋值:char*sp,s
  • 2、定义(基本的):【字符串常量】{ 又称为字符串文字,是指位于一对双引号中的任何字符,所以int a =“s”表示a被赋值一个指向字符串的地址,故这个式子是错误的。 字符串常量是静态存储,const char *s="hello,...
  • 结构体中定义的字符串不能直接赋值,需要使用字符串库String来使用strcpy函数复制。 结构体中的字符串一经定义就已经是一个const常量,即定值,因此不能直接赋值,需要借用c的库函数来复制达到赋值目的。 在vs2019...
  • C语言结构体

    2017-05-05 21:17:29
    struct1.结构体定义的时候不能赋初值;struct ours{ int num=100;...结构体字符串赋值方式void main(){ struct ours o1={100,"hello china"}; struct ours o2=01; //结构体整体直接赋值的时候,
  • c++ 字符串赋值

    千次阅读 2018-12-15 21:37:03
    从大一学c语言到现在都快三年了,今天居然还在简单的字符串赋值的过程中犯了错误,应该记下来,以免日后再犯。 这是一个结构体 typedef struct student { char name[21]; char sno[21]; int grade; } student;...
  • 为什么赋值成功后,字符串却变了,变成了乱码或者一串数字! <p style="text-align:center"><img alt="" src="https://img-ask.csdnimg.cn/upload/1623406450355.png" /></p>  </p>
  • C语言 - 结构体

    2015-08-21 19:41:05
    声明:在main函数的外面,关键词strcut name{成员变量}; 注意:以分号结尾. 结构体变量:由结构体类型修饰的变量;...注意:字符串不能直接赋值,需要通过strcpy函数来实现. 结构体变量也可以直接赋值.例如
  • 在strcpy时将一个char的字符串拷贝到该结构体中char arg[]时,打印arg时为空。 遂将该结构体中char arg[]改为char arg,由于char只能在定义时初始化,不能在使用中给其赋值,如果赋值,程序就崩溃。 终止解决方案是...
  • c语言指针与结构体

    2019-03-14 21:08:00
    *:指针运算符,指向对象的值(地址的指令) &:取地址运算符,(物理地址,实际地址) size of:用于获取变量...字符串结束标志'\0' 1.指针交换 从键盘输入两个整数到a、b,按由大到小输出 #include<...
  • C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组... /*正确,使用strcpy函数复制字符串*/ 所以要对game[0][0].cpart赋值应该用strcpy(game[0]
  • 目录前言实现1.实现“反射”1.1.描述结构体属性1.2.访问结构体属性1.3.结构体属性赋值1.3.数组和结构体类型的描述2....之前用C语言解析过json,虽然借助jansson这样强大的解析库,可以将字符串转化为json对象...
  • 文章目录结构体的定义以及赋值结构体大小和内存结构结构体数组结构体和指针结构体作为函数参数结构体嵌套结构体共用体(联合体)枚举typedef 关键字 ...注: 如果是字符串类型 需要使用strcpy; 4、赋
  • //程序填空题:在此程序中,通过定义学生结构体变量,存储了学生的学号,姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()函数的功能是重写形参filename所指文件中最后一个学生的数据,即用...
  • 结构体的用法

    万次阅读 多人点赞 2018-07-08 23:45:26
    关于c语言结构体的引入; 在前面已经介绍了整形(int,long,….),浮点型(flaot,double),字符型(char),还介绍了数组(存储一组具有相同类型的数据),字符串。但是在实际问题中只有这些数据类型...
  • golang1.1.字符串和数组转换

    千次阅读 2019-10-16 23:58:23
    - 在golang中想实现类似C语言中将结构体中固定数组长度赋值,却发现不能愉快的使用strcpy,由于接触的 golang比较少,找了很久都没有找到将string写入数组的方法。 而且在平时使用私有协议中都是要将字符串写入固定...
  • 6) C语言之使用字符串 7) C语言之格式化输出 8) C语言之格式化输入 9) C语言之格式化输入输出整理 10) C语言之基本运算符 11) C语言之其他运算符 12) C语言之表达式和语句 循环语句 13) C语言之while循环语句 ...
  • 自学去c语言视频教程

    2013-12-03 19:24:57
    42) C语言字符串表示和字符串I/O 43) C语言字符串输入/输出 44) C语言字符串处理函数 操作文件 45) C语言之文件是什么 46) C语言之用fopen() 打开文件,关闭文件 fclose() 47) C语言之getc() 和 putc 读写文件...
  • c++中的字符串其中一种是从C语言中继承过来的,C语言中的字符串是char类型的数组, 定义 char a[20]="I am a boy“;输出 cout但是这种字符串不可以直接赋值,比如再定义一个字符数组 b[20],且给b赋值:b[20]=a...
  • c语言中没有字符串类型,只能使用字符数组表示字符串。 当定义结构体时,成员是字符数组时,在外部给该成员赋值,不能使用 结构体把变量名.成员名 = "ssss"; 上述表达式是错误的,定义成员是数组,直接使用成员...
  • 操作系统为win7,开发工具为vs2010,C语言中我定义了一个结构体,typedef struct amqp_init{ char exchange[20]; char routekey[20]; char type[10]; amqp_socket_t* socket; amqp_connection_state_t ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 137
精华内容 54
关键字:

c语言结构体字符串赋值

c语言 订阅