数组与指针(一)

数组名作函数参数
1.当数组名作为函数参数时,若形参是数组名,则实参也必须为数组名。
2.若函数形参是数组名,则它代表的是形参数组首元素的地址,调用函数时将实参数组的首元素的地址传给形参数组名,因此实参数组和形参数组占用同一段内存,改变形参数组元素的值时,实参数组元素的值也将改变。
字符数组
1.初始化时若提供的初值个数小于数组长度,则后面的元素自动赋值为’\0’.
2.字符数组转化为字符串时,遇到字符’\0’表示字符串到此结束,由它前面的字符组成有效字符串,并非根据数组的长度来决定字符串长度。
3.用字符串常量来初始化字符数组。如:char str[]={“I am happy”}; 或 char str[]=“I am happy”;这两种初始化与 char str={‘I’,’ ‘,‘a’,‘m’,’ ‘,‘h’,‘a’,‘p’,‘p’,‘y’,’\0};等价,而不与char str={‘I’,’ ‘,‘a’,‘m’,’ ‘,‘h’,‘a’,‘p’,‘p’,‘y’};等价。
4.字符数组的输入与输出:①逐个输入与输出②将整个字符串一次输入与输出,例:char str[20];cin>>str;cout<<str;
5.若字符数组中包含一个以上’\0’,则遇到第一个’\0’时输出就结束。
6.用cin从键盘向计算机输入一个字符串时,从键盘输入的字符串应短于已定义的字符数组的长度,否则会出现问题。如: char str[5]; cin>>str; 若此时输入的str时Beijing,加上’\0’共8个字符,超过5,编译器不会报错,而是将多余的3个字符顺序地存放到str数组后面的3个字节中,有可能会破坏其他数据,因此在输入字符串时应该格外小心。
字符串处理函数
1.使用时要包含头文件 string 或string.h
2.字符串连接函数: strcat(char[],const char[]);
3.字符串复制函数:strcpy(char[],const char[]); strcpy(str1,str2,2);表示将str2前面两个字符复制到str1中去,然后再加一个’\0’。
4.字符串比较函数:strcmp(const char[],const char[]); 前面字符串大于后面的字符串函数值为一正整数,等于为0,小于为负。
5.字符串长度函数:strlen(const char[]); 测字符串实际长度,不包括’\0’。
字符串类与字符串变量
1.使用string类的定义变量时,必须在开头包含string头文件,注意不是string.h。
2.赋值:string str; str=“China”;注意字符数组不能这么做:例:char str[30]; str=“China”;是错误的。但可以写成char str[30]=“China”;
3.可以对字符串变量中某一字符进行操作:string word=“Then”; word[2]=‘a’;则此时word变成了"Than".
4.字符串变量的运算:

  • 字符串赋值直接用赋值号。例:string1=string2;
  • 字符串连接用加号。例: string str1=“C++”,str2=“Language”; string str3=str1+str2;
  • 字符串比较直接用关系运算符 == != >= > <= <
    5.字符串数组
  • 定义并初始化:string name[5]={“zhao”,“qian”,“sun”,“li”,“zhou”};
  • 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也可以变化,当其被重新赋值时,它的长度就可以变化。
  • 字符串数组中的每一个元素的值只包含字符串本身的字符而不包含’\0’。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值