null-terminated char array

来源:互联网 发布:mac如何禁止开机启动 编辑:程序博客网 时间:2024/06/10 06:11

今天做一道算法题,是traverse一个null-terminated char array。
所谓null-terminated char array就是以 ‘\0’ 结尾的char array。
这个算法实现起来并没有难度,代码如下:

#include <iostream>using namespace std;void reverse(char* str){    int n = strlen(str);    cout << n << endl;    for(int i = 0;i < n/2;i++){        char temp = str[i];        str[i] = str[n-i-1];        str[n-i-1] = temp;    } }void reverse1(char *str){    char* end = str;    char temp;    if(str){        while(*end){            end++;        }        --end;        while(str < end){            temp = *str;            *str++ = *end;            *end-- = temp;        }    }}int main(){    char a[10] = "abcdef\0";// char *a = "abc"; is not the expression of null-terminated    //char *a = "abcdef";    cout << a << endl;    reverse1(a);    cout << a << endl;}

这里两种实现方式就不细说了,说说我犯的一个错误。在main中,我一开始声明数组的方式是char *a = "abcdef";。这样每当我用a[i] = num;的方式赋值的时候,编译器就会报错。貌似这样声明的数组,并非null-terminated char array,系统不会用index的方式去赋值。所以当我把声明方式改成了char a[10] = "abcdef\0";编译器就不会报错了。
不一定非要在声明的时候加一个'\0',只要在声明的时候,比所赋值的长度大至少一个就可以了。比如char a[4] = 'abc';或者
char a[5] = 'abc';

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 滴滴给了差评怎么办 饿了么星级低怎么办 滴滴乘客给低星怎么办 蘑菇街自动收货前还没到怎么办 小主播人气太少别人看不到怎么办 税收分类编码不可用怎么办 斗鱼鱼翅充错了怎么办 苹果指纹摔坏了怎么办 小米5指纹坏了怎么办 苹果5s指纹失灵怎么办 学生赌博输了3万怎么办 电脑录屏没有声音怎么办 别人说你没有他美怎么办 没有你我怎么办歌词是什么意思 要是没有他我怎么办啊歌词 用喀秋莎保存的视频黑屏怎么办 电脑杀毒之后开不了机怎么办 夫妻离婚分房分车怎么办 请的护身符丢了怎么办 老车轻微烧机油怎么办 电脑下软件变卡怎么办 机械表日历偏了怎么办 子宫内膜异位痛经怎么办 凉着了坏肚子怎么办 昆虫叮咬后疼痛起水泡怎么办 每次来月经都痛经怎么办 人左肩的灯灭了怎么办 香港超过7天了怎么办? 手机拍完照图像是倒的怎么办 地下城金币邮寄卡了怎么办 wow7.3打团本卡怎么办 上古卷轴5出bug怎么办 苹果手机打游戏太卡怎么办 梦幻将军令换了怎么办 手机丢了将军令怎么办 大军之印放弃了怎么办 联想一体机进入界面就死机怎么办 nmd袜子鞋露脚趾怎么办 生意不顺意志崩溃了怎么办 笔记本突然卡住不动了怎么办 指定货代费用高怎么办