已结贴√

问题点数:10 回复次数:41

字符串的连接与求子串,目测只有高手可以帮我解答了

#include

#include

#define MAXSIZE 256            //定义串允许的最大字符个数

typedef struct

{

char string[MAXSIZE];        //MAXSIZE为串的最大长度

int len;                      //串的实际长度

}SSTRING;                      //串的顺序存储结构表示

int str_len(SSTRING *s)            //串的长度计算函数

{

return     s->len             ;

}

void str_input(SSTRING *s)         //串的输入函数

{

int i=0;

char ch;

s->len=0;

while((ch=getchar())!='\n')       //通过循环,从键盘输入一串字符串

{

s->string[i]=ch;

i++;

s->len++;

}

s->string[i]='\0';

}

SSTRING *str_rep(SSTRING *s1,SSTRING *s2,int pos)

{   //将字符串S1从pos位置处替换S2串

int i=0,j;

for(j=pos-1;s1->string[j]!='\0';j++)          //从替换的起始位置开始

if(s2->string[i]!='\0')

{

s1->string[j]=s2->string[i]                     ;       //进行替换

i++;

}

else

{

break;

}

return s1;

}

SSTRING *str_con(SSTRING *s1,SSTRING *s2)

{ //将字符串S2连接到S1串的后面,两个串合并成一个串,放到S1串中

int i=s1->len,j=0,k;

for(k=0;k

{

i++              ;

;

;// 通过循环,将S2串的元素逐一复制到S1串的后面,

;// 合并成一个串。

}

s1->string[i]='\0';

return s1;

}

SSTRING *str_sub(SSTRING *sub,SSTRING *s,int pos,int len)

{//将串S第pos个字符开始的长度为len的字符序列复制到串sub中

int i=pos-1,j=0,k;

for(k=1;k<=len;k++)

{

;//逐一取出S串中从pos开始的元素,并复制到sub串中

;//每复制完一个元素,sub串长度加1。

i++;

j++;

}

sub->string[j]='\0';

return sub;

}

void str_print(SSTRING *s)

{//字符串输出显示

int i;

for(i=0;ilen;i++)

printf("%c",s->string[i]);                ;//依次将串中的字符逐一输出到屏幕显示。

printf("\n");

}

void showmenu()

{  //显示菜单

printf("    欢迎使用串操作小软件\n");

printf("\t1、求串的长度\n");

printf("\t2、串的替换\n");

printf("\t3、串的连接\n");

printf("\t4、求子串\n");

printf("\t5、退出程序\n");

}

void main()

{

int position,length,no;

SSTRING str,str1,str2;

str.len=0;

str1.len=0,str2.len=0;

while(1)

{

showmenu();

printf("    请输入你的选择:");

scanf("%d",&no);

switch(no)

{

case 1:printf("请输入一串字符:");

fflush(stdin);

str_input(&str);

length=str_len(&str);

printf("字符串:%s的长度为%d\n",str.string,length);

system("pause");

system("cls");

break;

case 2:printf("请输入源字符串:");

fflush(stdin);

str_input(&str1);

printf("请输入替换字符串:");

fflush(stdin);

str_input(&str2);

printf("请输入替换位置:");

scanf("%d",&position);

str_rep(&str1,&str2,position);

printf("替换后的结果为:");

str_print(&str1);

system("pause");

system("cls");

break;

case 3:printf("请输入第一串字符:");

fflush(stdin);

str_input(&str1);

printf("请输入第二串字符串:");

fflush(stdin);

str_input(&str2);

str_con(&str1,&str2);

printf("两串字符连接后的结果为:");

str_print(&str1);

system("pause");

system("cls");

break;

case 4:printf("请输入一串字符:");

fflush(stdin);

str_input(&str1);

printf("请输入取子串的位置和长度:");

scanf("%d%d",&position,&length);

str_sub(&str,&str1,position,length);

printf("子串为:");

puts(str.string);

system("pause");

system("cls");

break;

case 5:

return;

}

}

}

php 求子串,字符串的连接与求子串,目测只有高手可以帮我解答了相关推荐

  1. 求两字符串最长公共连续子串---C++编程

    题目:有两个字符串(可能包含空格),找出其中最长的公共连续子串,并输出其长度.  输入描述:输入为两行字符串(可能包含空格),长度均小于等于50. 输出描述:  输出为一个整数,表示最长公共连续子串的 ...

  2. 【132】求把字符串分割成回文串的最少切分次数

    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割就可将 s ...

  3. oracle连接超时是什么意思,oracle数据库连接超时怎么办 求指导oracle远程连接超时怎么办...

    今天给大家带来oracle数据库连接超时怎么办,求指导oracle远程连接超时怎么办,让您轻松解决问题.       oracle数据库是开发人员必备的一个数据库,但是有些小伙伴们,经常会出现这样的问 ...

  4. 字符串中连续出现最多的子串 amp; 字符串中最长反复子串

    字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...

  5. 求一个字符串中连续出现的次数最多的子串

    求一个字符串中连续出现的次数最多的子串.例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复 ...

  6. 求一个字符串中连续出现次数最多的子串

    http://blog.csdn.net/imcdragon/article/details/6838565解答二 http://hi.baidu.com/icyday315/item/040aada ...

  7. java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串

    本文实例讲述了java实现求两个字符串最大公共子串的方法.分享给大家供大家参考,具体如下: 最近在项目工作中有一个关于文本对比的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串 ...

  8. 求两个字符串的最长公共子串

    给出两个字符串,求出两个字符串的最长公共子串 #include<iostream> #include<string> using namespace std; int main ...

  9. 【字符串问题】求一个字符串中重复出现的最长的子串

    2013-09-14 15:34:16 用后缀数组求一个字符串中重复出现的最长的子串. 用C++中的string类可以很方便地进行操作,需将后缀数组保存在vector<string>,如下 ...

最新文章

  1. 脉脉成为互联网大厂公敌
  2. 打印出所有的 info.plist 中的 keys、values
  3. roundrobin来历_Linux系统管理
  4. Avalonia跨平台入门第二十一篇之玩耍CEF
  5. jquery cxSelect 使用
  6. 查找服务器大文件内容,Linux查找大文件命令,springmvc基础面试题
  7. 如何调用华为云api_如何部署模型到ModelArts并远程调用 (五):如何调用在线API服务...
  8. ML.NET 1.0 发布,单击右键即可添加机器学习模型
  9. java 操作office_Java操作word的方法
  10. 拓客系统专用服务器,北京拓客系统
  11. 给服务器端DropDownList控件添加客户端onchange事件
  12. 【笔记】vim如何删除重复行
  13. html5 for vs2008插件,Chart 控件 for vs2008的安装
  14. 推荐算法之Thompson(汤普森)采样
  15. root过的安卓机器,安卓机怎样root
  16. [摘]思科认证三步走及找工作的七大职业走向
  17. abs传感器电压有几伏电_汽车ABS传感器的正常电阻值一般为多少呢 还有没有其它检测方法呢 还有它的信号线怎么检测 一般...
  18. 微软开源Citus企业版全部功能:提供分布式Postgres数据库功能
  19. October cms-Backend (后端-表单)
  20. PS 开启GPU加速图片处理

热门文章

  1. 企业财务制度二--会计科目名称和编号(一)1122 应收利息(转载)
  2. 店铺如何快速实现数字化管理?不妨参考一下管理系统
  3. loss 为nan???
  4. ORB-SLAM3 Tracking类源码分析(一)
  5. win7桌面计算机图标没有文字,win7没有桌面图标只有文字怎么办
  6. 高斯过程回归(Gaussian Process Regression, GPR)的理解1——权重空间角度
  7. 2014年4月19日
  8. python练习项目_python练习项目
  9. 《易经》64卦中的64个智慧
  10. CTFHub 文件上传