问题:

给出的区分大小写的字母字符的字符串,找到最大的字符串X,或者为X,或者其逆可以找到任何给定的字符串的子串

输入:

输入文件的第一行包含一个整数t(1 < = t < = 10),测试用例的数量,其次是每个测试用例的输入数据。每个测试用例的第一行包含一个整数(1 < = n < = 100),给定字符串的数量,其次是n行,每个代表一个字符串的最小长度1和最大长度100。之前和之后没有额外的空白字符串。

输出:

每个测试用例应该有一行包含发现的最大字符串的长度

样例输入:

2
3
ABCD
BCDFF
BRCD
2
rose
orchid

样例输出:

2
2

解题代码中用到的处理字符串函数:

strcpy: 
char * strcpy(char * strDest,const char * strSrc);
就是将后面的数组赋给前面。如果前面数组长度不够大,运行崩溃。
 
strncpy:
char*strncpy(char*dest,char*src,size_tnum);
这个与strcpy差别在于,它可以控制长度,当然这两者都可以通过控制 第二个数组的头位置来控制赋值起点。
 
strlen:
extern unsigned int strlen(char *s);
这个就是返回s数组长度(不包括'\0')
 
strstr:
extern char *strstr(const char *str1, const char *str2);
这个函数就是查找str2在str1中的位置,若不存在返回NULL。
 
 #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语言-字符串的更多相关文章

  1. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  2. C语言字符串拷贝

    C语言字符串拷贝利用指针操作,要清楚知道指针的指向 代码如下: #include <stdio.h> #include <assert.h> #include <stri ...

  3. C语言字符串长度(转)

    C语言字符串长度的计算是编程时常用到的,也是求职时必考的一项. C语言本身不限制字符串的长度,因而程序必须扫描完整个字符串后才能确定字符串的长度. 在程序里,一般会用strlen()函数或sizeof ...

  4. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  5. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  6. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  7. C 语言字符串连接的 3种方式

    C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...

  8. C语言字符串声明

    重新学习C语言字符串声明char *a="nihao";char a[]="nihao";什么区别?前者定义的是指针,并且指向字符串常量“nihao”,后者是字 ...

  9. C语言字符串操作函数整理

    整理C语言字符串相关的函数,以程序方式验证,以注释方式做说明. #include<stdio.h> #include<string.h> #include<stdlib. ...

  10. 13-C语言字符串函数库

    目录: 一.C语言字符串函数库 二.用命令行输入参数 回到顶部 一.C语言字符串函数库 1 #include <string.h> 2 字符串复制 strcpy(参数1,参数2); 参数1 ...

随机推荐

  1. linux系统——机制与策略(二)

    策略与机制 大部分策略与机制的区别定义是,策略是描述如何实现什么功能,机制则是需要实现怎样的功能.在"The Art of Unix Programming" 中Raymond通过 ...

  2. bzoj1093【ZJOI2007】最大半联通子图

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1093 sol  :一开始理解错题意了QAQ,还莫名其妙写挂了QAQ,调了半天 首先显然一个强联 ...

  3. webService的wsdl和restful的wadl的区别

    WebService之WADL和WSDL区别 两者都是基于自然语言描述的Web Application接口 . WADL主要用于Rest基础. Java开发WebService最重要的两个规范: JS ...

  4. This dependency was not found: * !!vue-style-loader!css-loader? 解决方案

    但是当你新建一个vue项目时,需要重新安装stylus,否则报错: This dependency was not found: * !!vue-style-loader!css-loader?{&q ...

  5. javaScript 笔记(4) -- 弹窗 & 计时事件 & cookie

    弹窗 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框:经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行操作. 语法: window ...

  6. 多核cpu的特殊中断

    cpu可以向其他cpu发送中断,也可以向单独某一个cpu发送中断 每个 cpu 都有一个时钟中断源

  7. POJ 2891

    Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 19509 ...

  8. CODEVS【3556】科技庄园

    题目描述 Description Life是codevs的用户,他是一个道德极高的用户,他积极贯彻党的十八大精神,积极走可持续发展道路,在他的不屑努力下STN终于决定让他在一片闲杂地里种桃,以亲身实践 ...

  9. 用c#语言通过修改注册表改IE网页首页

    原文发布时间为:2009-04-19 -- 来源于本人的百度文章 [由搬家工具导入] string key = @"HKEY_CURRENT_USER\Software\Microsoft\ ...

  10. User Experience Collection

    about a data driven system front end: 1. about succeeded requests: they do not want to see alerts ab ...