输入形式】一行字符串,代表名字。单词之间用空格间隔开。 【输出形式】一行字符串,代表名字的标准格式。 【样例输入】Alice betty catherine Davis 【样例输出】Alice B. C. Davis 【样例说明】每个单词首字母大写,中间名字采用缩写
时间: 2024-10-13 14:15:48 浏览: 40
这个问题是一个简单的字符串处理任务,可以用Python的内置方法轻松实现。首先,我们需要分割输入的字符串为单词列表,然后对每个单词应用标题化(capitalize),对于中间的名字,我们假设只有一个,并将其首字母变为大写(B. 表示"Betty"的缩写)。最后,我们将处理后的单词重新组合成字符串并返回。
以下是完成这个任务的Python代码:
```python
def format_name(input_string):
words = input_string.split()
first_name = words[0].title()
middle_name = words[1] if len(words) > 1 else ""
# 判断是否为单名,如果是,直接大写;否则,添加'.'
formatted_middle_name = middle_name[0].upper() + "." if middle_name else ""
last_name = words[-1]
return f"{first_name} {formatted_middle_name}{last_name}"
# 测试
input_str = "Alice betty catherine Davis"
output_str = format_name(input_str)
print(output_str) # 输出:Alice B. Catherine Davis
```
相关问题
输入一行字符,统计其中单词个数,单词之间用空格间隔
你好!关于你的问题,我可以给出以下代码:
```python
line = input("请输入一行字符串:")
word_list = line.split() # 按空格切割字符串,得到单词列表
count = len(word_list) # 统计单词个数
print("单词个数为:", count)
```
希望对你有帮助!如果还有其他问题,请随时提出。
统计给定字符串中各单词出现的次数,具体要求如下: 接收给定的一行字符串(如:hello hi ask hi); 切割字符串,统计字符串中各单词出现的次数,并输出结果。 注意:字符串中各单词之间间隔一个空格。用C语言
在C语言中,你可以使用标准库函数`strtok()`来进行字符串分割,并结合`hash_map`(类似于C++中的`std::map`)数据结构来统计单词出现的次数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct {
char* word;
int count;
} WordCount;
// 自定义哈希表,用于存储单词及其计数
typedef struct {
WordCount* table[256]; // 使用ASCII字符作为键,这里假设最多只有一个字母长度的单词
} WordBucket;
// 计算并更新单词计数
void increment_count(WordBucket* bucket, char* word) {
for (int i = 0; word[i] != '\0'; ++i) {
if (!bucket[word[i]]) {
bucket[word[i]] = (WordCount*)malloc(sizeof(WordCount));
bucket[word[i]]->word = word;
bucket[word[i]]->count = 1;
} else {
bucket[word[i]]->count++;
}
}
}
// 分割字符串并统计单词
void count_words(char* str, WordBucket* bucket) {
char* token = strtok(str, " ");
while (token != NULL) {
increment_count(bucket, token);
token = strtok(NULL, " ");
}
}
// 输出结果
void print_word_counts(WordBucket* bucket) {
for (char* key = "abcdefghijklmnopqrstuvwxyz"; key[0] <= 'z'; ++key) {
if (bucket[key]) {
printf("%s: %d\n", key, bucket[key]->count);
}
}
}
int main() {
char str[] = "hello hi ask hi";
WordBucket bucket;
memset(bucket.table, 0, sizeof(bucket.table));
count_words(str, &bucket);
print_word_counts(&bucket);
return 0;
}
```
这个程序首先初始化一个`WordBucket`结构,然后遍历输入字符串,将每个单词添加到哈希表中并计算其计数。最后,它会打印出所有统计过的单词及其出现次数。
阅读全文