2 qq 37276810 qq_37276810 于 2017.01.07 12:37 提问

c语言字符数组的部分移位

字符数组中赋值没有满不是自动赋值为\0吗,那为什么它移位的时候要连\0一起移位图片

3个回答

a29562268
a29562268   2017.01.07 17:23

一般使用数组做好初始化就行了,或者每次用完,再写入的最后一个数据加单斜杠0,置空后面的数据

qq_37276810
qq_37276810 移位也要加\0吗
一年多之前 回复
a29562268
a29562268   2017.01.07 18:38

如果用之前没初始化要加

a29562268
a29562268 回复qq_37276810: /0就是int类型0,char类型null,占一个char字节,你可以把它当作是一个字符,比如你的/0在第4字节,你在第4字节赋值了,这个/0也就不存在了 ,我写了一篇memcpy实现博客,你看下就了解char是怎么回事了!
一年多之前 回复
qq_37276810
qq_37276810 所以说不用移\0?
一年多之前 回复
a29562268
a29562268   2017.01.07 18:39

斜杠0占1个字节,用int 0表示

a29562268
a29562268 回复?????_?: 要 ,你用变量--到0就不再执行,加上与从0++运算次数相等
一年多之前 回复
qq_37276810
qq_37276810 懵,那这个程序要不要加1呀
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言字符数组移位
有两个字符数组,将a数组中的元素拷贝到b数组中 下面的C的实现代码: [plain] view plain copy #include      void main()   {       char a[] = "I am a boy.", b[20], *p1, *p2;              p1 = a; 
关于C语言的文件型指针和移位操作中的一些有趣问题的探讨
首先,我最近在做一些关于C中的FILE*指针的一些练习,无意间发现了一个有趣现象,现将这个现象写出来,以供探讨: 这是我写的一个将bmp图像内部的2进制值转为ASCLL码的1和0保存在一个txt文件中的一段代码; 有趣的现象发生在这个函数上: 这个函数是stdio中为FILE型指针提供的一个2进制流提取的函数,第一个参数是将要提取的内容 保存的地址;第二个参数本身是指sizeo
C语言:常量指针,指针常量,左移,右移
常量指针,就是指向常量的指针,关键字 const 出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。const int *pSrc; or int const *pSrc;指针常量,指针自身是一个常量,关键字 const 出现在 * 右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。char * const pFileName="/tmp/demo.
C语言中关于未填满字符数组的值(VS2015)
今天遇到一个bug,调试了半天发现是因为字符串未填满部分的值超出了函数参数范围造成的。以前看书上说未初始化的数组是垃圾数据,未填满的字符串会被自动初始化为0。今天发现仅当在定义数组的同时对数组进行初始化时是这样。在已经定义字符串后,利用函数对字符串进行赋值时,未填满打的部分并不是自动为零(在VS2015中)。且有两种情况。 先看下面一个程序,这是定义数组时给数组初始化: 未填满部分字符
移位加密算法C语言源代码
移位加密的C语言实现,比较完备的,可以参考参考
C语言打印字符串的一部分的方法
http://c.biancheng.net/cpp/html/1575.html C语言打印字符串的一部分的方法 头文件:#include sprintf()函数用于将格式化的数据写入字符串,其原型为:     int sprintf(char *str, char * format [, argument, ...]); 【参数】str为
用C语言对移位加密进行改进
用C语言对移位加密进行改进 #include #include //该头文件中有两个函数:tolower,toupper可以实现单个字符的大小写转换 #define MAX 100 #define YIWEI 3 /** *改进程序1,使输入的明码字母可以大小写混合 */ void ModifyNo1() { char M[MAX]; char C[MAX]; in
【算法】字符串左移函数的O(n)解法
例如,字符串 abcdef ,若要让def翻转到abc的前头,只要按照下述3个步骤操作即可: 首先将原字符串分为两个部分,即X:abc,Y:def; 将X反转,X->X^T,即得:abc->cba;将Y反转,Y->Y^T,即得:def->fed。 反转上述步骤得到的结果字符串X^TY^T,即反转字符串cbafed的两部分(cba和fed)给予反转,cbafed得到defabc,形式化表示为
【C语言】实现字符串右移位函数
请实现字符串右移位函数,比如:"abcdefghi"循环右移2位就是"hiabcdefg"。 函数原型:void RightLoopMove(char *str, unsigned short steps) 函数参数说明: pStr: Point to a '\0' terminated string. steps: The rotate shift numbers. ①暴力移位法:
C语言 有符号数和无符号数的移位运算
对于无符号数来说,左移和右移都是用的逻辑移位,即左移低位空出的补0,右移高位空出的补0; 对于有符号数来说,用的是算术移位,左移多出的会移进符号位,右移在gcc编译器下是算术右移,即空出的高位补符号位。 例: int16_t n = 0x4000; //此时符号位为0 n int16_t num = 0x8000; //此时符号位为1 num >>= 1; //此时n为0xC