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
- null-terminated char array
- Array Q2 reverse null-terminated string
- 初始化一个NULL-terminated array of strings in C (以NULL结尾的字符串数组)
- char array string
- typedef char array[10]
- ""/0/false/array()/null
- gcc下使用char * char 数组 时经常会出现的*** stack smashing detected ***: 程序 terminated
- char array和cell arrary
- c++ basic thoughts: char array
- 041.Char Array 字符数组
- 041.Char Array 字符数组
- array used and char`s array and string`s array
- 双空结束字符串的拷贝问题 How to copy the pairs of NULL-terminated strings
- 【Log历练手册】Frame must be terminated with a null octet
- char *p = NULL,int *p = NULL的区别
- PHP:empty,isset,is_null,array(0),array(),array(""),0,"0","","null",NULL的总结
- hbase phoenix char may not be null
- Delphi常用数据类型:char, array of char, PChar
- Python初探
- week13---5月26日(补充 DataTime)
- emberjs--环境搭建
- 动态规划之最长公共子序列(LCS)
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- null-terminated char array
- 关于java浮点型的数据输出格式以及默认的基本数据类型转换
- Java开发与技术挑战——关于技术的技术思考
- 各语言类型系统之间的区别
- Pat(Advanced Level)Practice--1097(Deduplication on a Linked List)
- 可变参数列表的实现
- 网络字节转换inet_aton、inet_nota、inet_addr
- 博客搬家了
- FaceBoundingBoxInInfraredSpace 得到的深度空间的数值为空