网站模板信息不存在,留言板 wordpress,电脑怎么建网站,海宏集团网站建设方案Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序#xff0c;实现顺序串的各种基本运算#xff0c;主函数已给出#xff0c;请补充每一种方法。 1、建立串sabcdefgh… Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 73 Solved: 28 [Submit][Status][Web Board] Description 编写一个程序实现顺序串的各种基本运算主函数已给出请补充每一种方法。 1、建立串sabcdefghefghijklmn,和串s1xyz; 2、输出串s 3、输出串s的长度 4、在串s的第九个字符位置插入串s1而产生s2 5、输出串s2 6、删除串s的第二个字符开始的五个字符而产生串s2 7、输出串s2; 8、将串s第二个字符开始的五个字符替换成串s1而产生串s2 9、输出串s2; 10、提取串s的第二个字符开始的10个字符而产生s2; 11、输出串s3 12、将串s1和串s2连接起来而产生串s3; 13、输出串s3; 顺序串的定义为 typedef struct { char data[SizeMax]; int length; } SqString; 主函数 int main() { SqString s,s1,s2,s3; char c[]abcdefghefghijklmn,d[]xyz; StrAssign(s,c); //建立串 StrAssign(s1,d); DispStr(s); //输出串 StrLength(s); s2InsStr(s,9,s1); //将s1插入到s的第九个位置 DispStr(s2); s2DelStr(s,2,5); //删除s第二个字符开始的五个字符 DispStr(s2); s2RepStr(s,2,5,s1); //将串s第二个字符开始的五个字符替换成串s1 DispStr(s2); s2TiStr(s,2,10); //提取串s的第二个字符开始的10个字符 DispStr(s2); s3Concat(s1,s2); //将串s1和串s2连接起来 DispStr(s3); return 0; } Input Output Sample Output abcdefghefghijklmn
18
abcdefghxyzefghijklmn
aghefghijklmn
axyzghefghijklmn
bcdefghefg
xyzbcdefghefg HINT 请使用C编译并提交#include stdio.h
#include string.h
#define SizeMax 105
typedef struct
{ char data[SizeMax]; int length;
} SqString;void StrAssign(SqString s,char cstr[])
{ int i; for(i0;i(int)strlen(cstr);i) s.data[i]cstr[i]; s.lengthi;
}
void StrLength(SqString s)
{ printf(%d\n,s.length);
}
void DispStr(SqString s)
{ int i; if(s.length0) { for(i0;is.length;i) printf(%c,s.data[i]); printf(\n); }
}
SqString InsStr(SqString s1,int i,SqString s2)
{ int j; SqString str; str.length0; if(i0||is1.length1) return str; for(j0;ji-1;j) str.data[j]s1.data[j]; for(j0;js2.length;j) str.data[ij-1]s2.data[j]; for(ji-1;js1.length;j) str.data[s2.lengthj]s1.data[j]; str.lengths1.lengths2.length; return str;
}
SqString DelStr(SqString s,int i,int j)
{ int k; SqString str; str.length0; if(i0||is.length||ijs.length1) return str; for(k0;ki-1;k) str.data[k]s.data[k]; for(kij-1;ks.length;k) str.data[k-j]s.data[k]; str.lengths.length-j; return str;
}
SqString RepStr(SqString s,int i,int j,SqString s1)
{ int k; SqString str; str.length0; if(i0||is.length||ij-1s.length) return str; for(k0;ki-1;k) str.data[k]s.data[k]; for(k0;ks1.length;k) str.data[ik-1]s1.data[k]; for(kij-1;ks.length;k) str.data[s1.lengthk-j]s.data[k]; str.lengths.lengths1.length-j; return str;
}
SqString TiStr(SqString s,int i,int j)
{ int k; SqString str; str.length0; if(i0||is.length||ij-1s.length) return str; for(k0;kj;k) str.data[k]s.data[ki-1]; str.lengthj; return str;
}
SqString Concat(SqString s1,SqString s2)
{ SqString str; str.lengths1.lengths2.length; int i; for(i0;is1.length;i) str.data[i]s1.data[i]; for(i0;is2.length;i) str.data[is1.length]s2.data[i]; return str;
}
int main()
{ SqString s,s1,s2,s3; char c[]abcdefghefghijklmn,d[]xyz; StrAssign(s,c); //建立串 StrAssign(s1,d); DispStr(s); //输出串 StrLength(s); s2InsStr(s,9,s1); //将s1插入到s的第九个位置 DispStr(s2); s2DelStr(s,2,5); //删除s第二个字符开始的五个字符 DispStr(s2); s2RepStr(s,2,5,s1); //将串s第二个字符开始的五个字符替换成串s1 DispStr(s2); s2TiStr(s,2,10); //提取串s的第二个字符开始的10个字符 DispStr(s2); s3Concat(s1,s2); //将串s1和串s2连接起来 DispStr(s3); return 0;
}