📌  相关文章
📜  将字符串中每个单词的第一个和最后一个字符大写

📅  最后修改于: 2022-05-13 01:57:07.060000             🧑  作者: Mango

将字符串中每个单词的第一个和最后一个字符大写

给定字符串,任务是将字符串中每个单词的第一个和最后一个字符大写。
例子:

Input: Geeks for geeks
Output: GeekS FoR GeekS

Input: Geeksforgeeks is best
Output: GeeksforgeekS IS BesT

方法

  • 创建字符串的字符数组
  • 从第一个字母到最后一个字母循环。
  • 检查字符是单词的开头还是结尾
  • 检查字符是否为小写字母。
  • 如果是,则将字符串的字符大写。

下面是上述方法的实现。

C++
// CPP program to capitalise the first
// and last character of each word in a string.
#include
using namespace std;
 
string FirstAndLast(string str)
{
 
    // Create an equivalent string
    // of the given string
    string ch = str;
    for (int i = 0; i < ch.length(); i++)
    {
 
        // k stores index of first character
        // and i is going to store index of last
        // character.
        int k = i;
        while (i < ch.length() && ch[i] != ' ')
            i++;
 
        // Check if the character is a small letter
        // If yes, then Capitalise
        ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                        ? ((int)ch[k] - 32)
                        : (int)ch[k]);
        ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                            ? ((int)ch[i - 1] - 32)
                            : (int)ch[i - 1]);
    }
 
    return ch;
}
 
// Driver code
int main()
{
    string str = "Geeks for Geeks";
    cout << str << "\n";
    cout << FirstAndLast(str);
}
 
// This code is contributed by ihritik


Java
// Java program to capitalise the first
// and last character of each word in a string.
 
class GFG {
    static String FirstAndLast(String str)
    {
 
        // Create an equivalent char array
        // of given string
        char[] ch = str.toCharArray();
        for (int i = 0; i < ch.length; i++) {
 
            // k stores index of first character
            // and i is going to store index of last
            // character.
            int k = i;
            while (i < ch.length && ch[i] != ' ')
                i++;
 
            // Check if the character is a small letter
            // If yes, then Capitalise
            ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                               ? ((int)ch[k] - 32)
                               : (int)ch[k]);
            ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                                   ? ((int)ch[i - 1] - 32)
                                   : (int)ch[i - 1]);
        }
 
        return new String(ch);
    }
 
    // Driver code
    public static void main(String args[])
    {
        String str = "Geeks for Geeks";
        System.out.println(str);
        System.out.println(FirstAndLast(str));
    }
}


Python3
# Python3 program to capitalise the first
# and last character of each word in a string.
def FirstAndLast(string) :
     
    # Create an equivalent char array
    # of given string
    ch = list(string);
     
    i = 0 ;
    while i < len(ch):
 
        # k stores index of first character
        # and i is going to store index of last
        # character.
        k = i;
         
        while (i < len(ch) and ch[i] != ' ') :
            i += 1;
 
        # Check if the character is a small letter
        # If yes, then Capitalise
        if (ord(ch[k]) >= 97 and
            ord(ch[k]) <= 122 ):
            ch[k] = chr(ord(ch[k]) - 32);
        else :
            ch[k] = ch[k]
             
        if (ord(ch[i - 1]) >= 90 and
            ord(ch[i - 1]) <= 122 ):
            ch[i - 1] = chr(ord(ch[i - 1]) - 32);
        else :
            ch[i - 1] = ch[i - 1]
             
        i += 1
         
    return "" . join(ch);
     
# Driver code
if __name__ == "__main__" :
     
    string = "Geeks for Geeks";
     
    print(string);
    print(FirstAndLast(string));
     
# This code is contributed by Ryuga


C#
// C# program to remove the first
// and last character of each word in a string.
using System;
 
class GFG
{
    static String FirstAndLast(String str)
    {
 
        // Create an equivalent char array
        // of given string
        char[] ch = str.ToCharArray();
        for (int i = 0; i < ch.Length; i++)
        {
 
            // k stores index of first character
            // and i is going to store index of last
            // character.
            int k = i;
            while (i < ch.Length && ch[i] != ' ')
                i++;
 
            // Check if the character is a small letter
            // If yes, then Capitalise
            ch[k] = (char)(ch[k] >= 'a' && ch[k] <= 'z'
                            ? ((int)ch[k] - 32)
                            : (int)ch[k]);
            ch[i - 1] = (char)(ch[i - 1] >= 'a' && ch[i - 1] <= 'z'
                                ? ((int)ch[i - 1] - 32)
                                : (int)ch[i - 1]);
        }
 
        return new String(ch);
    }
 
    // Driver code
    public static void Main(String []args)
    {
        String str = "Geeks for Geeks";
        Console.WriteLine(str);
        Console.WriteLine(FirstAndLast(str));
    }
}
 
/* This code contributed by PrinciRaj1992 */


PHP
= 'a' && $ch[$k] <= 'z')
                    ? (ord($ch[$k]) - 32) : (ord($ch[$k])));
        $ch[$i - 1] = chr(($ch[$i - 1] >= 'a' && $ch[$i - 1] <= 'z' )
                    ? (ord($ch[$i - 1]) - 32) : (ord($ch[$i - 1])));
    }
 
    return $ch;
}
 
// Driver code
 
$str = "Geeks for Geeks";
echo $str, "\n";
echo FirstAndLast($str);
 
// This code is contributed by ihritik
 
?>


Javascript


输出:
Geeks for Geeks
GeekS FoR GeekS