gpt4 book ai didi

c - 如何检查字符串C中的空格?

转载 作者:行者123 更新时间:2023-11-30 20:55:29 25 4
gpt4 key购买 nike

我试图让我的程序接受用户输入的名称,然后打印出该名称的首字母缩写。即汤米·布朗 --> 待定

到目前为止我所拥有的是:

int main (void)
{

char scroll[100] = {"kang cheng junga"};
printf ("%c\n", *(scroll+2));

for (int i=0; i<100; i++)
{
if (*(scroll+i)=" ")
{
printf (*(scroll+i+1));
}
}

我不断收到此错误:

error: incompatible pointer to integer conversion assigning to 'char' from 'char [2]'

[-Werror,-Wint-conversion] if (*(scroll+i)=" ")

error: using the result of an assignment as a condition without parentheses

[-Werror,-Wparentheses] if (*(scroll+i)=" ")

谁能告诉我我是怎么搞砸的?我很难理解 * 和 & 在 C 中的功能。我是初学者,所以我真的不知道我在做什么。

最佳答案

除了 strtok 之外,您还可以使用 strpbrk 轻松查找每个空格:

#include <stdio.h>
#include <string.h>

int main (void) {

char scroll[100] = "kang cheng junga";
char *p = scroll;

printf ("\n full name: %s\n", scroll);
printf (" initials : %c", *p);

while ((p = strpbrk (p, " ")))
printf ("%c", *++p);

printf ("\n\n");

return 0;
}

输出

$ ./bin/initials

full name: kang cheng junga
initials : kcj

您还可以使用单独使用指针的替代版本来消除对 string.h 的依赖:

#include <stdio.h>

int main (void) {

char scroll[100] = "kang cheng junga";
char *p = scroll;

printf ("\n full name: %s\n", scroll);
printf (" initials : %c", *p);

while (*p++)
if (*p == ' ' && *++p)
printf ("%c", *p);

printf ("\n\n");

return 0;
}

关于c - 如何检查字符串C中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858688/

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