拆分字符串并在 C 中打印大写的第一个字符
Splitting strings and printing the capitalized first characers in C
我正在编写一个代码,该代码采用包含某人姓名的字符串并打印该姓名的首字母大写,每当我 运行 我的代码时,我总是将首字母打印两次,但我没有这样做'知道如何解决此问题并获得所需的输出。
这是我的代码:
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
string name = GetString();
char* pointer;
pointer = strtok(name, " ");
while (pointer != NULL)
{
printf("%c", putchar(toupper(pointer[0])));
pointer = strtok (NULL, " ");
}
printf("\n");
}
当我 运行 代码例如:ahmed salah eldin
输出:
AASSEE
我只需要:
ASE
您正在使用 printf()
和 putchar()
您只需要其中之一。当您调用 putchar()
时,它 returns 输出字符然后传递给 printf()
并再次输出。
将其更改为
fputc(toupper(pointer[0]), stdout);
我正在编写一个代码,该代码采用包含某人姓名的字符串并打印该姓名的首字母大写,每当我 运行 我的代码时,我总是将首字母打印两次,但我没有这样做'知道如何解决此问题并获得所需的输出。
这是我的代码:
#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
string name = GetString();
char* pointer;
pointer = strtok(name, " ");
while (pointer != NULL)
{
printf("%c", putchar(toupper(pointer[0])));
pointer = strtok (NULL, " ");
}
printf("\n");
}
当我 运行 代码例如:ahmed salah eldin
输出:
AASSEE
我只需要:
ASE
您正在使用 printf()
和 putchar()
您只需要其中之一。当您调用 putchar()
时,它 returns 输出字符然后传递给 printf()
并再次输出。
将其更改为
fputc(toupper(pointer[0]), stdout);