C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。相关的知识,希望对你有一定的参考价值。
找出最长的字符串。输入5个字符串,输入其中最长的字符串。输入字符串调用函数scanf。错在哪?为什么?怎么改?谢谢。
#include <stdio.h>
#include <string.h >
int main()
int i = 0;
char s[80] = "", max[80] = "";
printf("输入五个字符串:\\n");
scanf("%s",s);
strcpy(max,s);
for(i=1; i<5; i++)
scanf("%s",s);
if( strcmp(max,s)<0 )
strcpy(max,s);
printf("最大的字符串是:%s \\n",max);
return 0;
扩展资料:
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果要打印的数的位数如果超过我们设定m则原样输出;
如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
参考技术A#include <stdio.h>
#include <string.h>
int main(void)
int i,j=0,max=0;
char str[5][20];
for(i=0;i<5;i++)
printf(" 请输入第 %d 个字符串:",i+1);
scanf("%s",str[i]);
if(!max)
max=strlen(str[i]);
if(max<strlen(str[i]))
max=strlen(str[i]);
j=i;
printf(" 输入的 5 个字符串中最长的字符串是:%s\\n",str[j]);
return 0;
if(k[i]>max) //不是k(i)
leetCode第3题(找出字符串中不含有重复字符的最长子串的长度)
一、题目
给定一个字符串str,请你找出其中不含有重复字符的最长子串的长度
示例1
输入: str=“abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是"abc",所以其长度为3
示例2
输入: str=“bbbbb”
输出: 1
解释:因为无重复字符的最长子串是"b",所以其长度为1
示例3
输入: str=“pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是"wke",所以其长度为3
示例4
输入: str=""
输出: 0
二、题目代码解析
package com.xz.leetcode.day3;
import java.util.HashSet;
import java.util.Set;
/**
* @description: 给定一个字符串str,请你找出其中不含有重复字符的最长子串的长度
*
* 示例1
* 输入: str="abcabcbb"
* 输出: 3
* 解释: 因为无重复字符的最长子串是"abc",所以其长度为3
*
* 示例2
* 输入: str="bbbbb"
* 输出: 1
* 解释:因为无重复字符的最长子串是"b",所以其长度为1
*
* 示例3
* 输入: str="pwwkew"
* 输出: 3
* 解释: 因为无重复字符的最长子串是"wke",所以其长度为3
*
* 示例4
* 输入: str=""
* 输出: 0
* @author: xz
* @create: 2021-07-27 22:11
*/
public class Demo {
public static void main(String[] args) {
String str="abcabcbb";
int length=lengthOfLongestSubString(str);
System.out.println("不含有重复字符的最长子串的长度: "+length);
}
public static int lengthOfLongestSubString(String str){
//定义一个哈希集合,记录每个字符是否出现过
Set<Character> set =new HashSet<>();
//右指针的初始值为0,相当于我们在字符串的左边界第一个字符
int rk =0;
//最长子串的长度,初始值为0
int ans=0;
for(int i=0;i<str.length();++i){
if(i != 0){
//左指针向右移动一格,移除一个字符
set.remove(str.charAt(i-1));
}
//不断的移动右指针
while(rk < str.length() && !set.contains(str.charAt(rk))){
//添加到set集合中
set.add(str.charAt(rk));
++rk;
}
//计算最大值
ans=Math.max(ans,rk-i);
}
return ans;
}
}
2、输出结果
以上是关于C语言找出最长的字符串。输入5个字符串,输入其中最长的字符串。的主要内容,如果未能解决你的问题,请参考以下文章
C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?
输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)