gpt4 book ai didi

c - 程序从字符串(名称)中获取缩写,无法删除所有空格

转载 作者:行者123 更新时间:2023-11-30 14:55:06 27 4
gpt4 key购买 nike

救命啊!我正在用 C 编写一个程序来获取所有首字母缩写 - 我对指针一无所知,所以让我们尽量远离这些 - 这是我到目前为止所拥有的:

    #include <stdio.h>
//CS50 Library for 'get_string() user input'
#include <cs50.h>
#include <string.h>
#include <ctype.h>

int main(void){
printf("Enter your name: ");
//User input for string
string s = get_string();
int i = 0;
//Determine whether the first chars are space - if not print char
if(s[0] != isspace(s[0])){
printf("%c",s[0]);
}
//loop through each Char - determine char is not space
while(s[i] != '\0'){
if(s[i] == ' '){
//if i'th char is space - add one to it thus printing char that comes after space
printf("%c", toupper(s[i+1]));
}
//advance i'th char count
i++;
}
printf("\n");
}

当我输入“John Gerald Smith”时,程序会返回“JGB”,但如果我尝试输入以下内容:“John gerald smith”(多个空格),它似乎不会删除任何空格。我仍然得到输出的缩写,但我需要确保它根本不打印任何空格。请帮忙!这是家庭作业,所以我不希望得到答案,但如果有人能给我一些关于如何做到这一点的信息,我将非常感激。谢谢!

最佳答案

通过避免字符串中第一个字符的“特殊情况代码”,我的处理方式与原始内容和@yajiv的答案不同。

我会运行一次列表并使用一些“状态”来知道何时输出字符。

  • 当我们看到一个空格时,我们知道我们想要输出下一个非空格(因此我们设置 printNextNonSpace )

  • 当我们看到非空格时,我们会打印它 if printNextNonSpace设置(然后我们清除 printNextNonSpace 以避免打印额外的字符)

  • printNextNonSpace最初设置为 1,因此如果字符串中的第一个字符不是空格,我们将打印该字符。

请注意,这将处理字符串 "Andrew Bill Charlie" -> "ABC" 中任意数量的空格。 , " David Edgar Frank " -> "DEF"

[代码被删除,因为 OP 明智地想要提示而不是在盘上回答]

关于c - 程序从字符串(名称)中获取缩写,无法删除所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com