gpt4 book ai didi

c - 如何获取句子中回文词的总数

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

我正在开发一个接受长字符串作为输入(句子)的程序。程序将检查字符串并计算找到的回文单词的数量,然后返回计数。

示例:

输入:

_gig school level bye_

输出:

_2._

如何获取句子中回文词的总数?

下面是我到目前为止编写的代码。

/*
My basic idea is:
1) I will retrieve words from a sentence using "if(s[i] == ' ')"
2) I will check if the word is a palindrome
3) If it is a palindrome, I will add the word to the count "count++"
*/

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

int main()
{
char s[80],temp;
int i,j, len, count;
count = 0;

gets(s);
len=strlen(s);
j = len - 1;

for(i = 0; i < len; i++){
if(s[i] == ' '){
for(;i<j;i++,j--)
{
if(s[i] != s[j])
break;
}
if(i>=j)
{
count++;
}
}
if (i == len)
break;
}

printf("%d", count);
return 0;
}

最佳答案

你的逻辑不正确。我已经按照您的风格编写了代码,现在您可以轻松理解这些内容并在任何您想要的地方直接使用此代码。

检查此代码

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

int main()
{
int i,j,k,l,len,count = 0;
char s[80];

gets(s);
len = strlen(s);

for(i=0;i<len;i++)
{
if(s[i] != ' ' || s[i] != '\n')
{
for(j=i;j<len;j++)
{
if(s[j] == ' ' || s[j] == '\n')
break;
}
}

for(k=i,l=j-1;;)
{
if(s[k] != s[l])
break;
else if(k >= l)
{
count = count + 1;
break;
}
else
{
k = k + 1;
l = l - 1;
continue;
}
}

i = j;
}

printf("\n%d",count);
return 0;
}

关于c - 如何获取句子中回文词的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43435446/

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