字符数组的初始化和赋值

时间:2021-11-26 19:51:05
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">char c[]="I am happy ";
char c[ ]={'I' ,' ','a','m','','h','a','p','p','y,'\0'} ;//初始化的方法;
//<span style="font-family: Arial, Helvetica, sans-serif;">赋值的方法:</span>
s="xyz";
s[]="xyz"; 赋值必须有数组字符个数4(错误)
s[0]='x';
s[1]='y';
s[2]='z';
s[3]='\0';
使用strcpy函数赋值:(以下均为双参数)
char s[5];
strcpy(s,"ABCD")后赋于前
注:strcat为前后连接;strcmp为比较,返回0正(1串大于2串)负;strstr求子串的位置,返回从子串起始处后半部分
cin.getline(字符串变量,变量大小)可以有空白,遇enter结束;

</span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:18px;">#include "stdafx.h"</span></span>
<span style="font-size:18px;"><strong>#include <iostream></strong>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int i=0;
	char s[10];//error:Stack around the variable 's' was corrupted,当输入a-j十个字符时,提示数组越界,这是因为</span>
<span style="font-size:18px;">//有一个结束符是自动加上的,实际共有11个字符;
	cin>>s;
	for (i=0;i<10;i++)
	{
		if(s[i]>=97&&s[i]<=122)
		s[i]=s[i]-32;
	}
	for (i=0;i<10;i++)
		cout<<s[i]<<" ";
	return 0;
}</span>
教程的方法是一个三目运算符:
s[i]=(islower(s[i])?toupper(s[i]):toupper)//将小写字母改为大写