C语言中字符数组及字符串处理函数

# include <stdio.h>
void main()
{char p[20]={'a','b','c','d'}
strcpy(p+strlen(q),r); 这步是什么意思
strcat(p,q); 这步是什么意思
printf("%d %d\n",sizeof(p),strlen(p));
}
19 (A) 20 9(B) 9 9(C) 20 11(D) 11 11

一、字符数组的定义
一维字符数组:用于存储和处理1个字符串,其定义格式与一维数值数组一样。
char str[20];
二维字符数组:用于同时存储和处理多个字符串,其定义格式与二维数值数组一样。
char country[10][20];
country[i]:第i个字符串
二.字符数组的初始化
字符数组的初始化.
1.可以通过为每个数组元素指定初值字符来实现。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
char str[ ]={"I am happy"}; 可以省略花括号,如下所示
char str[ ]="I am happy";
char country[10][20]={“china”,”japanese”,……};
注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的
char str[15];
str="I am happy";
strcpy(str, "I am happy");
不是用单个字符作为初值,而是用一个字符串(注意:字符串的两端是用双引号“”而不是单引号‘’括起来的)作为初值。
‘a’ “a”区别
三、字符数组的引用
字符数组的逐个字符引用,与引用数值数组元素类似。
(1)字符数组的输入
除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。
例如:
char str[10];
…… for(i=0; i<10; i++)
{ scanf(\"%c\", &str);
fflush(stdin); /*清除键盘输入缓冲区*/
}

这里只是一部分具体你查看这里:http://www.eehome.cn/thread-95295-1-1.html追问

这不是重点 啊 亲 重点在 strcpy(p+strlen(q),r);。不过还是谢谢 你 了 灰常感谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-12
strcpy(p+strlen(q),r); 首先你这句是错的。因为r,q没有定义。
strcpy(A,B)的意思是将B串复制到A串;
strcat(p,q); 是将q串附加给p串,注意:此时一定要确定p的大小要够大。追问

q[]="abc",r[]="abcde"

追答

strcpy(p+strlen(q),r);中strlen(q)就是计算q数组所占字节数。
上句表示将r数组复制到以p数组第3(0开头)项所在地址为首地址的数组中。
举例:
如果 p[]="1234567890"; 上句执行完后就是p[]="1 2 3 a b c d e \0 0"(忽略空格,加空格只是为了方便解释),其中'\0'是字符串结束标志符,占1位。
strcat(p,q); 语句strcpy(p+strlen(q),r);执行完后p[]="1 2 3 a b c d e \0 0",所以这句执行完结构是:p[]="1 2 3 a b c d e a b c d e \0"(忽略空格)。即:把r加到p的后面。

本回答被提问者采纳
第2个回答  2013-04-12
# include <stdio.h>
void main()
{char p[20]={'a','b','c','d'}
strcpy(p+strlen(q),r); 把字符串r的内容拷贝到p原有字符的后面
strcat(p,q); 拼接p,q两个字符串,就是把q接到p后面,与以上操作基本相同
printf("%d %d\n",sizeof(p),strlen(p));
}
第3个回答  2013-04-12
strcpy(p+strlen(q),r); 把字符串r的内容加到p字符串的后面,个人认为代码应该是strcpy(p+strlen(p),r);
strcat(p,q); 拼接p,q两个字符串,就是把q接到p后面
第4个回答  2013-04-12
strcpy(p+strlen(q),r); 这步是什么意思
// 将r的内容拷贝到p中strlen(q)-1的位置开始的地方

strcat(p,q);
// 拼接两个字符数组
你的q是哪里的?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网