C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?相关的知识,希望对你有一定的参考价值。

#include<stdio.h>

#include<string.h>

int main()

char a[6][50],s[50];

int max=0;

for(int i=0;i<5;i++)

gets(a[i]);

if(strlen(a[i])>max)

max=strlen(a[i]);//记录最长字符串的长度;

strcpy(s,a[i]);//记录最长的字符串

printf("max=(%s)\\n",s);

for(int i=0;i<5;i++)

printf("%s",a[i]);

for(int j=0;j<max-strlen(a[i]);j++)

printf("*");

printf("\\n");

return 0;

参考技术A 字符串长度有专门的函数len,
两长度定义成l1,l2,...l5
判断大小,得出最大的,
开始循环输出,
For(i=0,i<zuida-l1,i++)
Printf('*')
For(,i<l1,i++)
Printf(%s,str[i-zuida+l1])

....

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语言输入五个字符串,找出最长的字符串,长度不够的在字符左边用*补齐后输出?的主要内容,如果未能解决你的问题,请参考以下文章

C语言:从键盘输入10个字符串,找出一个最长的字符串。

c语言,从字符串中找出最长的,并输出。

C语言题目找出最长的字符串. 输入5个字符串,输出最长的那个字符串。输入字符串调用scanf()

c语言输出n个字符串中最长字符串

ZZNUOJ_用C语言编写程序实现1170:最长字符串(指针专题)(附完整源码)

c语言的一个问题,一个找最长字符串的函数