⑴ c语言 请问char数组该如何声明
char数组的声明就是直接定义一个char类型的数组。
声明一个char型数组:
char a[N] // a为char型数组名,N为数组大小
值得注意的是:声明必须要在调用之前,对于C语言,必须将定义的语句放在执行功能语句之前。
⑵ c语言 char数组的问题
你只输入了c[0]和c[1]的值,没法判断c[6]的,如果想判断的话和判断c[6]一样
if(c[5]
==
’你想判断的字符‘)就行了,注意必须是两个等于号,一个是赋值,两个是比较
⑶ c语言字符数组
char
temp[100]="
",中间空格算一个字符
char
c[1]=''
''定义
str[i]=c[0]不表示清空数据
⑷ C语言字符数组怎么用
C语言的字符数组有两种,比较方式也有所不同。
1 字符串。
C语言的字符串是用字符数组表示的。约定以'\0'(ascii码0)作为结尾标记。
对于字符串类的字符数组,可以用string.h中的strcmp函数进行比较。
int strcmp(char *str1, char *str2);
其比较规则为:
a, 从左向右依次比较每个元素;
b, 如果出现str1的元素ascii码比较大,则返回1;如果出现str2元素ascii码比较大,则返回-1。如果相等,则继续。
c, 如果一直相等,直到遇到\0,这时检查是否均为\0,如果均为\0,那么返回0;
d, 如果str1到\0,而str2没到,返回-1; 否则返回1。
总结规则就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。
2 不带\0结束的字符数组。
对于此类数组,没有库函数可供使用,只能自己写函数进行比较。规则可以仿照strcmp的规则。
由于没有\0作为结束,所以参数中必须传入每个数组的元素个数。
int char_array_cmp(char *s1, int l1, char *s2, int l2)
{
int lmin = l1>l2? l2:l1; //较小长度者。
int i;
for(i = 0; i < lmin; i ++)
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return -1;
//运行到这里,表示所有已判断元素均相等。
if(l1 == l2) return 0;
if(l1 > l2) return 1;
return -1;//l1 < l2的情况。
}
⑸ C语言字符数组
输出LBLMNP吧。
首先strcat的函数是把a,b两个数组连接起来,于是a数组里面就成了ABLMNP
然后i++的值是i,也就是把i用了再加1;
于是b[1]=a[1];(b变成“LBNP")
b[2]=a[2];(b变成”LBLNP")
……
当i为6时while的条件不满足,跳出
最后输出b中的字符串
⑹ c语言,字符数组函数
#include<stdio.h>
/*比较两个字符串*/
/*src、dst相等return1*/
/*src比dst短return-2*/
/*src比dst长return2*/
/*src、dst长度一致但不相等return-1*/
intstringCmp(char*src,char*dst){
if(strlen(src)<strlen(dst))
return-2;
elseif(strlen(src)>strlen(dst))
return2;
else{
while(*src&&*dst){
if(*src!=*dst)
return-1;
src++;
dst++;
}
return1;
}
}
/*合并两个字符串*/
voidmergeString(char*str1,char*str2,char*merge){
while(*merge++=*str1++);/*复制str1并将指针移动到字符串的末尾的下一个位置*/
merge--;/*退到字符串的末尾*/
while(*merge++=*str2++);/*从末尾( )的位置开始将str2拷贝进来*/
*merge='