C语言 如何定义字符串数组?c语言 怎么把一个二维数组初始化为空

本文目录
- C语言 如何定义字符串数组
- c语言 怎么把一个二维数组初始化为空
- 在C++中使用static对字符串初始化后,字符串是否是空字符
- 怎么把string字符串转换数组
- 在C语言中,各种数据的初始化值为空的代码是怎么写的
- 如何转换string和字符数组
- C语言如何清空字符(串)数组、另求字符数组和字符串数组区别
- 对字符数组的初始化问题(C++ 运行环境为VC 6.0)
- 字符数组的字符数组的初始化
- 怎么将字符数组全赋值为空
C语言 如何定义字符串数组
C语言字符串数组中的每一个元素均为指针,即有诸形如“ptr_array[i]”的指针。由于数组元素均为指针,因此ptr_array[i]是指第i+1个元素的指针。
例:如二维指针数组的定义为:char *ptr_array={{“asdx“,“qwer“,“fdsfaf“},{“44444“,“555“,“6666“},{“a78x“,“q3er“,“f2f“}};
扩展资料
字符串数组数组元素表示方法:
数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。
例如,a,a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。
参考资料来源:百度百科—指针数组
c语言 怎么把一个二维数组初始化为空
利用给数组赋值时未赋值部分C系统自动赋值为0是一种方法。
还可以利用memset()函数, 它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在string.h和mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。其函数原型为:
void *memset(void*,int,unsigned);
其中void*表示起始地址,int 表示要填充的值,最后的unsigned表示填充的字节数。
例如:
#include《string.h》
void main()
{
int a={0}; //方法一,所有初始化为0
int *p={NULL};
char c={’\0’};
double b};
memset(b,0,sizeof(b)); //方法二,所有初始化为0
}
在C++中使用static对字符串初始化后,字符串是否是空字符
从下面代码的运行结果来看,static字符串数组确实被初始化为0。如果希望当结果为零时,逻辑表达式为“真”,则可将cout 《《 int(letter[i][j]) 《《 “ “;改为cout 《《 int(letter[i][j] == 0) 《《 “ “;。
/*
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Press any key to continue
*/
#include 《iostream》
using namespace std;
int main() {
int i,j;
static char letter;
for(i = 0; i 《 5; ++i) {
for(j = 0; j 《 5; ++j)
cout 《《 int(letter[i][j]) 《《 “ “;
cout 《《 endl;
}
return 0;
}
怎么把string字符串转换数组
这个要看你的具体需求了.如果是有分隔符的那种例如“a,b,c“;就直接分割就行了.
String string = “a,b,c“;
String stringArr= string.split(“,“); //注意分隔符是需要转译滴...
如果是“abc“这种字符串,就直接
String string = “abc“ ;
char stringArr = string.toCharArray(); //注意返回值是char数组
如果要返回byte数组就直接使用getBytes方法就ok了~~
String string = “abc“ ;
byte stringArr = string.getBytes();
希望可以帮到你....
在C语言中,各种数据的初始化值为空的代码是怎么写的
C语言并没有空值这个概念,一般习惯上,指针若是指向地址0便是空值,其他数据若内容是0便是空值。填充一大片内存区域可以使用memset函数,它的填充长度是按字节计。
整形:int a = 0;
字符型:char a = 0;
数组:
int a;
memset( a, 0, sizeof(int)*20 );
C字符串只需要把第一个字符设为’\0’即可。
当然也可以全部清成0。
char a = “ashdfuih“;
memset( a, 0, sizeof(char)*20 );
例如有一个结构体Some x,可以这样清零:
memset( &x, 0, sizeof(Some) );
如果是一个结构体的数组Some x,可以这样:
menset( x, 0, sizeof(Some)*10 );
任何一个指针都可以通过直接赋为0变成空指针:
Some* p = 0;
如何转换string和字符数组
字符数组转化成string类型:
char ch = “ABCDEFG“;
string str(ch);//也可string str = ch;
或者
char ch = “ABCDEFG“;
string str;
str = ch;//在原有基础上添加可以用str += ch;
将string类型转换为字符数组:
char buf;
string str(“ABCDEFG“);
length = str.copy(buf, 9);
buf[length] = ’\0’;
或者
char buf;
string str(“ABCDEFG“);
strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 10);
C语言如何清空字符(串)数组、另求字符数组和字符串数组区别
所谓清空数组,是要清空每个元素;清空字符串是将字符串置为空,这两个要求有异。
清空数组:char a; int i; for ( i=0;i《100;i++ ) a[i]=0;
清空字符串:char a; a=0; //或a=’\0’;
因为字符串以0结束,只要将字符串数组第1个字符设置为0值即算清空了字符串。
扩展资料:
C语言函数
C语言isupper()函数:判断一个字符是否是大写字母
C语言isspace()函数:判断一个字符是否是空白符
C语言isprint()函数:判断一个字符是否是可打印字符
C语言islower()函数:判断一个字符是否是小写字母
C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值
int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0
int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)
参考资料来源:百度百科-C语言函数
对字符数组的初始化问题(C++ 运行环境为VC 6.0)
这些是基本的概念,你一定要弄懂:
char a; //定义了一个字符数组,数组名称为a,这个时候,a是一个指针,并且是常量类型,在整个数组生存期内其值都是不可改动的。
a = “null“; //这个时候,a是一个常量指针,指向数组的首地址,他的值在数组的生存期都是不可改变的。现在把一个字符串赋值给他,当然是不行的。
*a = “null“; //a本身是一个常量指针,指向数组的首地址,对他进行解引用,得到一个字赋值,此时把一个字符串常量的首地址赋值给他,这个比较无厘头,不谈了。
char *a; //定义了一个字符指针。
a = “null“; //把一个字符串常量赋值给他,也就是把常量“null“的首地址赋值给a,正确。
*a = “null“; //a是一个字符指针,对他进行解引用后,得到的必然是一个单个字符值,把一个字符常量的首地址付给这个字赋值,这个也同样无厘头。
认真考虑考虑。
enjoy!
字符数组的字符数组的初始化
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
(1)用字符常量逐个初始化数组。例如:
char a={’i’,’l’,’o’,’v’,’e’,’y’,’o’,’u’};
用逐个初始化的方法与数值型数组初始化本质上是一样的,同样也可以进行完全赋初值及不完全赋初值,但是不完全赋值时没有赋值的元素被赋为空格。
当对全体元素赋初值时也可以省去长度说明。例如:
char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o’,’g’,’r’,’a’,’m’};
这时C数组的长度自动定为9。
(2)字符串常量初始化数组。例如:
char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o’,’g’,’r’,’a’,’m’};
可写为:
char c[ ]={“C program“};
或去掉{}写为:
char c[ ]=“C program“;
怎么将字符数组全赋值为空
数组是值数据,空的默认就是0。
用一句话那就是FOR语句。
for(i=0;1《15;i++)
a[i]=0;
还有一种办法,将一个已有数组赋给你要的那个数组。不然,如果只对单个数组赋值,那只能对每个数组元素赋。
看你的意思是想定义个字符数组,那你可以用STRING语句,因为字符串在内存中的存储模式就是数组,只不过这样写,可以方便你输入输出。

更多文章:
turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)
2026年10月11日 10:00
金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)
2026年10月11日 09:10
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40



