gpt4 book ai didi

c# - 在没有空格键的情况下计算字符串中的字母

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:15 25 4
gpt4 key购买 nike

我想用函数 strlen() 计算字符串的长度(包括空格)和不带空格的字符串的长度。前者有效,但我对后者有疑问。

例子:

Hello User//including spaces:10 letters//without spaces:9

当我输入一个没有空格的单词时,程序总是计数:100,当有 1 个空格时:我得到 99,依此类推。

#include<stdio.h>
#include<stdlib.h>

#define N 100

int main()
{
int counter1 = 0, i;
char string1[N] = {0};
{
gets(string1);
printf("\nYour Text:\n%s",string1);
printf("\nLength of String:%i Letters(with spaces)", strlen(string1));
for(i=0; i<N; i++)
{
if(string1[i] != ' ' && string1[i] != '0')
counter1++;
}
printf("Number of Letters(without spaces): %i",counter1);
}
return 0;
}

最佳答案

您没有考虑过字符串以'\n' 结尾。您的代码将从 0 运行到 100,因此您将始终得到 100 作为结果。你可以用这样的东西改变你的代码:

i=0;
while(string1[i]!='\n' && string1[i]!='\0')
{
if(string1[i]!=' ') {
counter1++;
}

i++;
}

请注意,在 C 中,默认的字符串热敏字符是 '\0' 而不是 0

关于c# - 在没有空格键的情况下计算字符串中的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22527907/

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