C语言-字符串
问题:
给出的区分大小写的字母字符的字符串,找到最大的字符串X,或者为X,或者其逆可以找到任何给定的字符串的子串
输入:
输入文件的第一行包含一个整数t(1 < = t < = 10),测试用例的数量,其次是每个测试用例的输入数据。每个测试用例的第一行包含一个整数(1 < = n < = 100),给定字符串的数量,其次是n行,每个代表一个字符串的最小长度1和最大长度100。之前和之后没有额外的空白字符串。
输出:
每个测试用例应该有一行包含发现的最大字符串的长度
样例输入:
2
3
ABCD
BCDFF
BRCD
2
rose
orchid
样例输出:
2
2
解题代码中用到的处理字符串函数:
char*strncpy(char*dest,char*src,size_tnum);这个与strcpy差别在于,它可以控制长度,当然这两者都可以通过控制 第二个数组的头位置来控制赋值起点。 #include<stdio.h>
#include<string.h>
char str[][];
int sum1;//每组测试数据中的字符串个数
int find_sub(int len,int index)
{
char s[],pos[],rev[];
int length;
int i,j;
int flag;
strcpy(s,str[index]);
length=len;
while(length>)
{
flag=;
for(i=;i<=len-length;i++)
{
flag=;
//得到正向的字符子串
strncpy(pos,s+i,length);
//得到逆向的字符子串
for(j=;j<length;j++)
{
rev[j]=pos[length-j-];
}
//末尾加上结束符
pos[length]=rev[length]='\0';
//判断改组的所有字符串中是否有相应的子串
for(i=;i<sum1;i++)
{
if(strstr(str[i],pos)==NULL&&strstr(str[i],rev)==NULL)
{
flag=;
break;
}
}
if(flag)break;
}
if(flag)
break;
else
--length;
}
return length;
}
int main()
{
int sum;//测试的数据数量
int len_min;
int i;
int index;//记录最短子串的位置
scanf("%d",&sum);
while(sum--)
{
scanf("%d",&sum1);
len_min=;
for(i=;i<sum1;i++)
{
scanf("%s",str[i]);
//找到最短的字符串
if(strlen(str[i])<(len_min))
{
len_min=strlen(str[i]);
index=i;
}
}
printf("%d\n",find_sub(len_min,index));
}
return ;
}
运行结果:
C语言-字符串的更多相关文章
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- C语言字符串拷贝
C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...
- C语言字符串长度(转)
C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- c语言字符串操作大全
C语言字符串操作函数 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #incl ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C 语言字符串连接的 3种方式
C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...
- C语言字符串声明
重新学习C语言字符串声明char *a="nihao";char a[]="nihao";什么区别?前者定义的是指针,并且指向字符串常量“nihao”,后者是字 ...
- C语言字符串操作函数整理
整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...
- 13-C语言字符串函数库
目录: 一.C语言字符串函数库 二.用命令行输入参数 回到顶部 一.C语言字符串函数库 1 #include <string.h> 2 字符串复制 strcpy(参数1,参数2); 参数1 ...
随机推荐
- linux系统——机制与策略(二)
策略与机制 大部分策略与机制的区别定义是,策略是描述如何实现什么功能,机制则是需要实现怎样的功能.在"The Art of Unix Programming" 中Raymond通过 ...
- bzoj1093【ZJOI2007】最大半联通子图
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1093 sol :一开始理解错题意了QAQ,还莫名其妙写挂了QAQ,调了半天 首先显然一个强联 ...
- webService的wsdl和restful的wadl的区别
WebService之WADL和WSDL区别 两者都是基于自然语言描述的Web Application接口 . WADL主要用于Rest基础. Java开发WebService最重要的两个规范: JS ...
- This dependency was not found: * !!vue-style-loader!css-loader? 解决方案
但是当你新建一个vue项目时,需要重新安装stylus,否则报错: This dependency was not found: * !!vue-style-loader!css-loader?{&q ...
- javaScript 笔记(4) -- 弹窗 & 计时事件 & cookie
弹窗 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框:经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: window ...
- 多核cpu的特殊中断
cpu可以向其他cpu发送中断,也可以向单独某一个cpu发送中断 每个 cpu 都有一个时钟中断源
- POJ 2891
Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 19509 ...
- CODEVS【3556】科技庄园
题目描述 Description Life是codevs的用户,他是一个道德极高的用户,他积极贯彻党的十八大精神,积极走可持续发展道路,在他的不屑努力下STN终于决定让他在一片闲杂地里种桃,以亲身实践 ...
- 用c#语言通过修改注册表改IE网页首页
原文发布时间为:2009-04-19 -- 来源于本人的百度文章 [由搬家工具导入] string key = @"HKEY_CURRENT_USER\Software\Microsoft\ ...
- User Experience Collection
about a data driven system front end: 1. about succeeded requests: they do not want to see alerts ab ...