关于c语⾔char类型数组的总结(csstring库⽅法)
char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a⼜指向数据区中的hello常量,这⾥的指针a出现混乱,不允许!
参考百度回答:
使⽤char类型数组代替string类型, ⾄于id前的0 可以通过printf格式化输出(%06d  前六位,不⾜六位⽤0填充)
⽽char类型数组的⽐较是运⽤ strcmp(a, b) 函数 (位于<string.h>库中 <cstring>)⾄于char类型数组的赋值也需要注意,不能运⽤
char a[8], char b[8]; a = b, a已经指向8个空间,不能再指向b的8个空间了,如果要使a 于 b相等 应该使⽤ strcpy(a, b)(将b的值赋值给a) char类型赋值 最好⽤ scanf("%s", a); 不需要添加 地址引⽤符号 a是a[0]元素的地址&a[0]    a + 1就是 a[0] + 1的地址 ⽽ &a是整个a数组的地址; (部分编译器也⽀持&a这种写法);
char str[10]; //str是string的缩写, 即字符串
printf("请输⼊字符串:");
scanf("%s", str); /*输⼊参数是已经定义好的“字符数组名”, 不⽤加&, 因为在中数组名就代表该数组的起始地址*/
关于刷题时 ⽤ ⽤scanf() 得到有空格的字符时
cstring 库中的函数:
c++string类型
参考地址:
%c是会读⼊回车和空格的 因此想要获strlen(char *str) : 求字符串长度
strcpy(char *dest, char *src) : 把src拷贝到dest
strcat(char *dest, char *src) : 把src连接到dest后⾯
strcmp(char *, char *s2) : 按照各个字符(ascii)⽐较和s2,相等则返回0,否则返回ascii相减的结果
strstr(char *, char *s2) : 在s1中查s2,返回到的位置,若不到则返回取输⼊zi scanf("%d %c %d", &a, &b, &c);
定义⼀个字符默认的长度时:
定义⼀个字符array[5],a[0]='1'.....a[4]='5'.字符长度是5,但占⽤的空间却为6个字符,"12345"数组个元素表⽰如下1 2 3 5 6 \0。⼀共占了六个空间
关于⽅法中传⼊char类型数组的参数:
函数定义为void func(char s[10]) 然后调⽤就可以
也可以直接传char *,然后在程序中按照s[10]操作
如果不定长 可以传指针和size过去
void func(char *s, int len)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。