栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++第四次作业(字符数组、字符串)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++第四次作业(字符数组、字符串)

一.字符数组、字符串、字符串变量(类)、字符串数组

1.字符数组:存放字符数据的数组。

        1)定义和赋值:

                a)利用字符串:char c[ ]={"I am happy"};

                b)逐一赋值:char c[ ]= {'I',' ','a','m',' ','h','a','p','p','y'}   //系统根据初值个数自动确定数组长度

                       强调:<1>不能对数组整体赋值:char c[10];  c={'I',' ','a','m',' ','h','a','p','p','y'} ;  (错误!)

                                                                      char a[10];char b[10];  a=b;(错误!)[区:字符串变量]

                                                                        

                                  <2>只能分别对数组的元素赋值:char c[10];c[0]='a';......(正确!)

        2)输入输出:用的是字符数组名!(区别:只有c++的字符数组能直接输入、输出数组名!其它的都需要for循环!)

                char a[10];  //这就必须要有数组长度了!!

                cin>>a;    

                cout<

2.字符串:两端用双撇号(“”),系统在自动加‘’

        1)字符数组

                        char c[ ]={"I am happy"};    //数组的长度是11,不是10!!

                                等价于char c[ ]= {'I',' ','a','m','h','a','p','p','y',''};

        2)字符串变量

        3)字符串处理函数:只用于字符数组(也可用于字符串变量,但字符串变量不需要,因为其可以直接用简单运算符判断),加头文件#include (同字符串变量)

                       char a[10]="I am";   char b[6]="happy";

                a)stract(a,b);把b连接在a后,连接后的字符串放在a中。

                b)strcpy(a,b);把b复制到a中。

                c)strcmp(a,b);比较a、b两个字符串。

                        a)——c)的使用:直接写就行了。例如:stract(a,b);

                d)strlen(a):测出字符串实际长度,不包含‘’。

        4)利用指针判断遍历到字符串结尾的方法:*p!=''

                string str;

                cin>>str;

                char *p=&str[0];

                for(;*p!='';){......}

                注意:不允许指针同整数比较!(例:p

3.字符串变量:string是在c++库内已声明的类。(sizeof(string)是类的长度,即各数据成员的长度之和)

                        加头文件#include

        1)定义和赋值:

                a)定义无[],无{},但可以通过下标修改

                      string str ="I am happy";

                      str[2] = 'a';  //可用字符数组的下标进行修改

                b)可以整体赋值!(区:字符数组)

                      <1>  string str;str="I am happy";

                      <2>  string str1,str2;str1=str2;

        2)输入与输出:同字符数组

                string str;

                cin>>str;

                cout<

        3)运算(区:字符串处理函数)

                        string str1 ="I am";   string str1="happy";

                a)连接  用加号‘+’                               

                        str1 = str1 + str2;

                b)复制  用等号'='

                        str1=str2;

                c)比较  用关系运算符(==、!=、<=、>=、<、>)

                d)求字符串的长度 

                        <1> 法一:length()成员

                                int len = str1.length();

                        <2> 法二:size()成员

                                int len = str1.size();

        4)指向字符串变量的指针

                string str ="I am happy";

                char *p = &str[0];   //指针是char型,&和【0】必须都有!!(因为字符串名字不代表首地址!)

4.字符串数组:其每一个元素存放一个字符串。(区:字符数组)

        1)定义和赋值:

                <1> string str[5] = {"zhang","li","sun","wang"};

               <2> string str[5];str[5]={"zhang","li","sun","wang"};

                每个字符串元素长度可以各不相同,每一个元素的值只包含字符串本身的字符 而 不包含''。

        2)输入与输出:都要用for循环,str[i]

               <1>输入:

                        string str[5] ;

                        for(int i=0;i<5;i++) cin>>str[i];

                <2>输出:

                        string str[5] = {"zhang","li","sun","wang"};

                        for(int i=0;i<5;i++) cout>>str[i];

               注意: 定义时没有赋初值,也没有用cin输入数据,要用str[i].resize()分配空间。(因为字符串数组不知道每一个字符串的具体长度,如果不用str[i].resize()分配空间,那么它不知道什么时候结束)

                                string str[5];

                                str[0].resize(2);

                                str[0][0]='a';

                                str[0][1]='b';

        3)修改其中一个字符串的一个元素的值:使用二维数组直接修改

二.输入三个字符串按从小到大输出(指针方法)

     注意:排序的交换,第一步的temp都在前面

        1)法一:运用字符数组

              注意:输出的时候有顺序了!!p1,p2,p3

#include 
#include 
using namespace std;
void paixu(char *p1,char *p2,char *p3);

int main()
{
	char a[2],b[2],c[2];   //字符数组 
	char *p1=a;
	char *p2=b;
	char *p3=c;
	cin>>a>>b>>c;
	paixu(p1,p2,p3);  //传入指针无* 
	return 0;
}

void paixu(char *p1,char *p2,char *p3)
{
	int i;
	char *temp;
	for(i=0;i<2;i++){   //让p1p2[i]){
			temp = p1;
			p1 = p2;
			p2 = temp;
			break;
 		}
	}
	for(i=0;i<2;i++){	//让p1p3[i]){
			temp = p1;
			p1 = p3;
			p3 = temp;
			break;
 		}
	} 
	for(i=0;i<2;i++){	//让p2p3[i]){
			temp = p2;
			p2 = p3;
			p3 = temp;
			break;
 		}
	}
	printf("%s %s %s",p1,p2,p3);  
}

        2)法二:运用字符串

                注意:在让str2

#include 
using namespace std;
int main()
{
	string str1,str2,str3,temp;
	cin>>str1>>str2>>str3;
	if(str2>str3){
		temp = str1;
		str1 = str2;
		str2 = temp;
	}   //让str2=str3) cout< 

三.自己写一个函数实现两个字符串的比较

#include 
#include 
using namespace std;

void strcmp(char *p1,char *p2,int len1,int len2);

int main()
{
	string str1,str2;
	cin>>str1>>str2;
	int len;
	int len1=str1.length();
	int len2=str2.length();
	char *p1=&str1[0],*p2=&str2[0];
	strcmp(p1,p2,len1,len2);
	return 0;
}

void strcmp(char *p1,char *p2,int len1,int len2)
{
	int i,j,sum=0;
	if(len1==len2){
		for(;*p1!='';p1++,p2++){
			if(*p1==*p2) sum++;
			else if(*p1!=*p2) {
				cout<<(*p1)-(*p2)< 

四.用指向指针的指针的方法将n个整数排序并输出

#include 
using namespace std;

void sort(int *pstr[],int n);

int main()
{
	int i,n;
	cin>>n;
	int digit[n],*pstr[n];
	for(i=0;i>digit[i];
	for(i=0;i 

五.字符串输出连续数组

#include 
#include 
using namespace std;
int main()
{
	string str,a[10];
	int i,j,n,line=0,row=0;
	cin>>str;
	int len = str.length() ;
	for(i=0,j=i+1;i='0'&&str[i]<='9'&&str[j]>='0'&&str[j]<='9'&&str[j]==str[i]+1){	
			if(line==0){
				a[row].resize(2);
				a[row][0]=str[i];
				a[row][1]=str[j]; 
				line +=2;
				cout<<"^";
			}
			else{
				a[row].resize(1);
				a[row][line]=str[j];
				if(str[j+1]<'0'||str[j+1]>'9'||str[j+1]!=str[j]+1){
					row++;
					line=0;
					cout<<"#";
				}
			}		
		}
		cout<<"&";
	}
	for(i=0;i<5;i++){
		cout<

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号