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 ...
随机推荐
- SCU 4438 Censor(哈希+模拟栈)
Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text \(p\). He ...
- hihoCoder 1133 二分·二分查找之k小数(TOP K算法)
#1133 : 二分·二分查找之k小数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很 ...
- [HDU2829] Lawrence [四边形不等式优化dp]
题面: 传送门 思路: 依然是一道很明显的区间dp 我们设$dp\left[i\right]\left[j\right]$表示前$j$个节点分成了$i$块的最小花费,$w\left[i\right]\ ...
- Angularjs的$apply及其优化使用
今天,我们要聊得是Angularjs中的小明星$apply.当我们数据更新了,但是view层却没反应时,总能听到有人说,用apply吧,然后,懵懂无知的我们,在赋值代码后面加了$scope.$appl ...
- Codeforces Round #363 (Div. 2) A 水
Description There will be a launch of a new, powerful and unusual collider very soon, which located ...
- 【转】Nodejs学习笔记(二)--- 模块
目录 简介及资料 自定义模块 创建一个自定义模块 调用自定义模块 exports和module.exports 区别 exports和module.exports 覆盖 其它... 简介及资料 通过N ...
- 将扁平化的JSON属性转换为嵌套的JSON
需要将如下JSON {"a":"a","b":"b","c.e":"e",&qu ...
- poj 1743 Musical Theme 后缀自动机/后缀数组/后缀树
题目大意 直接用了hzwer的题意 题意:有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题."主题&qu ...
- poj 2441 Arrange the Bulls
Arrange the Bulls Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 5427 Accepted: 2069 ...
- poj 2528 Mayor's posters 线段树 || 并查集 离线处理
题目链接 题意 用不同颜色的线段覆盖数轴,问最终数轴上有多少种颜色? 注:只有最上面的线段能够被看到:即,如果有一条线段被其他的线段给完全覆盖住,则这个颜色是看不到的. 法一:线段树 按题意按顺序模拟 ...