字符串简称为串,是由零个或多个字符。
定义:用包含一个字符数组和一个整数型变量分别记录串的元素和长度;
赋值:需要输入要赋值的串和一个用来记录赋值元素的字符数组,用for循环一直赋值到字符数组的最后一位(‘\0’)即可;
判断相等:先判断两个串的长度是否相等(长度相等且对应位置上元素一致的两个串相等),然后用for循环一位一位判断;
将两个串连起来 :定义一个中间串,将两个串依次输入并返回中间串即可;
删除:输入两个整数表示删除的起始端,然后定义一个中间串并将删除部分前后的串输入给中间串 ,最后返回中间串即可;
#include<iostream>
using namespace std;
#define MaxSize 100
typedef struct {
char data[MaxSize];
int length;
}SqString;//串
void strAssign(SqString &s,char str[]) {//赋值
int i;
for(int i=0;str[i]!='\0';/*字符数组最后一位*/i++)
s.data[i]=str[i];
s.length=i;
}
bool StrEqual(SqString s,SqString t){//判断相等
bool same=true;
int i;
if(s.length!=t.length)//长度不同
same=false;
else
for(int i=0;i<s.length;i++){
if(s.data[i]==t.data[i]){
same=true;
break;
}
}
return true;
}
int strlength(SqString s){//查询串长
return s.length;
}
SqString Concat(SqString s,SqString t){//串联
SqString str;
str.length=s.length+t.length;
for(int i=0;i<s.length;i++)
str.data[i]=s.data[i];
for(int i=0;i<t.length;i++)
str.data[i+s.length]=t.data[i];
return str;
}
SqString Delstr(SqString s,int i,int j/*ij为删除范围*/){//删除
SqString str;
str.length=0;
if(i<=0||i>s.length||i+j>s.length-1)
return str;
for(int k=0;k<i-1;k++)
str.data[k]=s.data[k];
for(int k=i+j-1;k<s.length;k++)
str.data[k-j]=s.data[k];
str.length=s.length-j;
return str;
}
void Dispstr(SqString s){//输出
if(s.length>0)
for(int i=0;i<s.length;i++)
cout<<s.data[i]<<endl;
}
int main(){
}