1. 程式人生 > >C語言 在已知字串中找最長單詞

C語言 在已知字串中找最長單詞

程式設計在一個已知的字串中找最長單詞,假定字串中只含字母和空格,空格用來分隔不同單詞。

比如:"ni hao world",最長單詞是5個字母

這個題目其實不難,但是很多初學者會沒有思路,我把這個分享出來.編譯器用的是xCode.

int length = 0, temp =0; 
        char str[100] ="";//xCode中沒有String 用字元陣列來表示

        gets(str);  //  獲取字串
        
        for (int i =0; i < strlen(str); i++) {
            if (!((isalpha(str[i])) || (str[i] ==' '))) {  // 驗證輸入是否為字母或空格
                printf("⚠️ Notify: just input with letter or space\n");
                return 0;  //  輸入不合法 結束
            } elseif (str[i] == ' ') {//  遇到空格則長度清0
                length = 0;
            } else {
                length++;// 不是空格,長度+1
                if (length > temp) {   //若出現長度更長的單詞則記錄
                    temp = length;
                }
            }
        }
        
        printf("longest: %d",temp);// 輸出最長單詞字母個數

相關推薦

C語言字串單詞

程式設計在一個已知的字串中找最長單詞,假定字串中只含字母和空格,空格用來分隔不同單詞。 比如:"ni hao world",最長單詞是5個字母 這個題目其實不難,但是很多初學者會沒有思路,我把這個

資料結構--C語言--線性表的元素以值遞增有序排列,並以單鏈表作儲存結構。試寫一高效演算法,刪除表所有值大於mink且小於maxk的元素

#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LEN sizeof(struct LNode) struct LNode{ int data;//資料域 struct

C語言_輸出字串的一個大小寫字母組合

首先讀一個字元,判斷該字元是否為字母: 如果該字元為字母,則存入字母緩衝區,如果該字母后面為結束符,則記錄該字母組合的長度、起始和結束下標。 如果該字元不是字母,但該字元的前一個字元是字母,則記錄該字母組合的長度、起始和結束下標。清空字母緩衝區。 如果該字元不是字母且其

C語言編寫 刪除字串的子串

輸入2個字串S1和S2,要求刪除字串S1中出現的所有子串S2,即結果字串中不能包含S2。 輸入格式: 輸入在2行中分別給出不超過80個字元長度的、以回車結束的2個非空字串,對應S1和S2。 輸出格式: 在一行中輸出刪除字串S1中出現的所有子串S2後的結果字串。

C語言求10個數大數

#include <stdio.h> int main() { int max; int a[10]={1,20,3,4,5,6,7,8,9,10}; max=a[0]; for(int i=1;i<10;i++)  { &

尋找一個字串重複子串(字尾陣列)&出一個字串不重複子串

一、尋找一個字串中的最長重複子串(字尾陣列) 字尾陣列其實可以看尋找一個字串中的最長重複子串(字尾陣列)作一個由字串s倒數i個字元組成的子串的集合,其中0<i<s.length(),例如 字串strstr的字尾陣列為: {r,tr,str,rstr,trstr,

字串字串連續的數字串

【面試題目】請在一個字串中找出連續最長的數字串,並把這個串的長度返回:如果存在長度相同的連續數字串,返回最後一個連續數字串。 【函式原型】unsigned int continumax(char *pOutputstr, char *inputstr); 注意:數字串只需要

C語言求出陣列大值和次大值!

#include<stdio.h> //改陣列大小隻需要修改 N後面的數字 #define N 5 int main(void){ int arr[N]={5,6,8,3,9}; int max= 0; //定義最大值並賦值 int mid= 0

Leetcode演算法題(C語言)15--字串的第一個唯一字元

題目:字串中的第一個唯一字元 給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。 案例: s = “leetcode” 返回 0. s = “loveleetco

字串連續數字子串

題目 給出一個字串作為輸入,找出其中最長的連續數字串並返回其長度和起始index。如果存在長度相同的連續數字串,返回最後一個連續數字串。如果沒有,返回0和0。 Analysis 對於這道題目,首先我們需要進一步縮小題目範圍。題目中並沒有給出字串中的

C語言 求一批整數出現多的個位數字

任務描述 給定一批整數,分析每個整數的每一位數字,求出現次數最多的個位數字。例如給定3個整數1234、2345、3456,其中出現最多次數的數字是3和4,均出現了3次。 功能要求 ①輸入格式:

C語言實現去除字串空格

去除字串中所有空格 voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pStr != ' ') { *pTmp++ = *pStr; } ++pStr; } *pTmp = '/0';

演算法學習——尋找字串迴文子串

文章轉載自公眾號《網際網路偵查》 /** * @author xiaoshi on 2018/9/24. * Happy Mid-Autumn Festival */ public class PlalindromeString { // 判斷一個字串是否迴文,演算法中用

Python 字串相鄰的長度

基本操作 基本思路就是後面的字元和前面的字元相比,一樣的加一,不一樣的重新開始 程式碼如下 import string def long_repeat(line): """ length the longest substring that consi

Manacher演算法(一個字串找到迴文子串)

零、預備知識   Manacher用於在一個字串中找到最長的迴文子串。   迴文串:正著念和反著念一樣,例如aabbaa,anna等。   注意子串與子序列的區別:     子串必須是在原字元中可以找到的。比如 " I am a student"。am是子串(當然也是子序列),但是aa就不是子串了(是

如何找到字串迴文子串?

小史: 只要先對比第一個字元和倒數第一個字元,再對比第二個字元和倒數第二個字元,以此類推。如果都相等,那就是迴文串了。 題目:給你一個字串,找出裡面最長的迴文子串。 例如,輸入abcdcef,那麼輸出應該是cdc; 輸入ada

程式設計珠璣: 15章 字串 15.2尋找字串重複子串 -------解題總結

#include <iostream> #include <stdio.h> #include <sstream> #include <stdlib.h>//qsort using namespace std; /* 問題:

字串查詢迴文子串完整程式碼

#include <stdio.h> #include <string.h> #include <malloc.h> int Min(int a,int b) { return ((a-b)?b:a); } char* huiw

字串不重複子串

題目描述: 給定一字串只包含數字,請寫一個演算法,找出該字串中的最長不重複子串(不重複是指子串中每一元素不同於子串中其他元素) 如:“120135435”最長不重複子串為 “201354”

從一個英文字串出每個單詞出現的頻率

import java.util.*; public class Lookup{ public static void main(String[] args){ String s = "the instruction set of the Java virtual machine