/*C中,字符串,即字符数组的赋值与字符变量、常量、变量的赋值是不同的。初学者总会犯错误。

常见错误如下:

1、定义的时候直接用字符串赋值
char a[10]; char a[10]="hello";
注意:不能先定义再给它赋值,这样是错误的!a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许! 2、利用=运算符来把字符串复制到字符数组中
char str1[10], str2[10]; str1 = "abc"; str2 = str1;
注意:这样是错误的!C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此, 对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。 直接尝试对字符串进行复制或比较操作会失败。 正确的做法是在声明中直接定义字符数组或者使用strcpy函数。 char a[10];
strcpy(a, "hello");使用字符串复制函数strcpy char a[10]={'h','e','l','l','o'};逐个赋值;
char a[10]="hello";声明中直接定义;
*/
#include<stdio.h>
main()
{
char s[10];
char r[10]="1 2 3 4 5";//在声明中可以对字符数组进行定义,但此处的=并不是赋值运算符。//
strcpy(s,r);
printf("s是:%s\n",s); }

C语言中字符数组的赋值和复制的更多相关文章

  1. C语言中字符数组和字符串指针分析

    这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...

  2. go语言中的数组切片:特立独行的可变数组

    go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...

  3. Go 语言中的数组是一种 值类型(不像 C/C++ 中是指向首元素的指针)

    the-way-to-go_ZH_CN/07.1.md at master · Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-w ...

  4. C++中字符数组和字符串string

    字符数组 C++中字符数组用char str[]能够用来表示一个字符串. (1)   数组的大小和字符串的长度. 数组的大小一定要大于字符串的长度,由于系统会自己主动补上一个'\0'作为字符串的结束标 ...

  5. Go语言中底层数组和切片的关系以及数组扩容规则

    Go语言中底层数组和切片的关系以及数组扩容规则 demo package main import ( "fmt" ) func main() { // 声明一个底层数组,长度为10 ...

  6. C语言 给字符数组赋值的方法

    typedef struct _tagTESTCHAR { char szTest[30];}TESTCHAR , *PTESTCHAR; int main(int argc, char* argv[ ...

  7. C语言中整形数组、字符数组、字符串的区别

    一. 第一 整型数组的存放,数组最后是不加'\0'的,字符串会自动加上,因此存放字符的时候数组的大小要比实际字符的多一个 第二 整型数组 每一个单元是4个字节的,字符串是一个一个字符存放的,每个字符占 ...

  8. C语言中的数组和指针以及字符串

    数组名同时也是该数组首元素的地址,而指针提供了一种用来使用地址的符号方法,因此指针能够很有效地处理数组. 将一个整数加给指针,这个整数会和指针所指类型的字节数相乘,然后所得的结果会加到初始地址上 da ...

  9. [C++程序设计]字符数组的赋值与引用

    只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值. char c[5]; c={′C′,′h′,′i′,′n′,′a′}; //错误,不能对整个数组一次赋值 c[0]=′C′; c[1]=′h ...

  10. c语言中字符串数组初始化的一点总结&& c++访问控制的三种方式

    char *c[]={"ONE","TWO","THREE","FOUR"}; // c语言中定义了一个字符串数组(也称 ...

随机推荐

  1. nacos原理

    配置中心原理 1.Nacos 客户端使用长轮询请求客户端变更数据,并且设置30s超时,当配置发生变化响应会立即返回,否则一直等到29.5s之后再返回响应. 2.客户端的请求到达服务端后,服务端将该请求 ...

  2. mybatis自增主键的获取

    实体类 package org.example.entity; public class User { private Integer id; private String name; private ...

  3. 【awk】找出两个文件中的不同值

    https://blog.csdn.net/weixin_33534991/article/details/116683524 awk 'NR==FNR{a[$0]}NR>FNR{ if(!($ ...

  4. ASPNET Core ActionFilterAttribute中断后续请求

    转载自:https://www.cnblogs.com/luconsole/p/4346669.html SPNET MVC如何正确的中断请求? 感觉是这样? 在aspnet开发过程中如果想要中断当前 ...

  5. 2019-2020-1 20199318《Linux内核原理与分析》第八周作业

    第7章 可执行程序工作原理 一.学习笔记 1.ELF 2.程序编译 3.连接与库 二.试验记录 1.开始先更新内核,再用test_exec.c将test.c覆盖掉 2.test.c文件中增加了exec ...

  6. 每日一抄 Go语言通信顺序进程简述

    package main import ( "fmt" "sync" ) /* Go实现了两种并发形式,第一种是大家普遍认知的多线程共享内存,其实就是 Java ...

  7. echars简单使用

    引入js <script type="text/javascript" src="js/echarts.js" ></script> 记 ...

  8. java面经学习002

    2. Java都有哪些map,分别怎么实现的,具体讲 3. 除了LinkedHashMap,你还知道哪些有序map 4. ConcurrentHashMap讲一讲 5. 为什么要有线程池 6. 线程池 ...

  9. error Delete `␍` prettier/prettier 错误解决方案

    问题根源: 罪魁祸首是git的一个配置属性:core.autocrlf 由于历史原因,windows下和linux下的文本文件的换行符不一致. Windows在换行的时候,同时使用了回车符CR(car ...

  10. Linux下Jenkins的安装和启动(war包)

    1.下载Jenkins war包 Jenkins jar 下载 或者使用在线地址下载如下 wget http://mirrors.jenkins-ci.org/war/latest/jenkins.w ...