/*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. 记一个好用的轮播图的FlexSlider

    之前给自己公司的主页套用过一个js动态生成的轮播图,但是从载入的时机和载入后的效果都不太理想,又懒得去优化了,这次偶然遇到一个比较不错的轮播图的js插件,记录之. 首先它是给予jquery的,引进jq ...

  2. Anaconda之conda常用命令介绍

    anaconda用法: 查看已经安装的包: pip list 或者 conda list 安装和更新: pip install requests pip install requests --upgr ...

  3. 运行yarn报错:error C:\liuyan\tools\echarts-5.4.0\node_modules\cwebp-bin: Command failed.

    完成warning和报错信息如下. 通过报错信息提示,锁定cwebp-bin,在waring中发现有提示说要更新至7或更高版本. 解决方案:在package.json中,将cwebp-bin设置版本为 ...

  4. laravel qq第三方登录

    QQ互联官网 首先申请成为开发者获取到后面需要的 client_id redirect_uri client_secret 文档资料/SDK及资源下载/SDK下载/PHP SDK 下载下来修改文件修改 ...

  5. js时间转化为几天前,几小时前,几分钟前

    在前面一篇文章中,我们学习到了如何获取时间和怎么算出两者之间的时间差 今天看看怎么将时间戳转换为几个月前,几周前,几天前,几分钟前的形式.与上面类似通过JavaScript计算当前时间与定义的时间的对 ...

  6. JAVA LIST Stream流的用法

    最近在学习list流化的新写法 //我这里取的字段是Float类型的,你们需要缓存自己对应能进行计算的字段类型Integer dateCode = Integer.parseInt(DateUtil. ...

  7. memoのMac折腾记录

    memoのMac折腾记录 纯粹是一些零散的学习记录.有错误欢迎指出. 我就是一鼠标党,不会Linux. zsh加载 惭愧,最近才知道bash和zsh是两个不同的终端... 之前看一些mac设置系统环境 ...

  8. Windows使用cmd命令查看当前用户名

    https://blog.csdn.net/qq_46068659/article/details/106037024 查看用户: net user 查看当前用户: whoami

  9. IIS 7.0、IIS 7.5 和 IIS 8.0 中的 HTTP 状态代码

    https://support.microsoft.com/zh-cn/help/943891/the-http-status-code-in-iis-7-0--iis-7-5--and-iis-8- ...

  10. python与c++区别

    1 都是面向对象编程,但是python是脚本语言,无需main函数 2 python不需要引用库,前不要定义类型,后不要: 列表可以用-x,表示倒数第几个,不能用a++ a = [1, 2, 3, 4 ...