gpt4 book ai didi

C - 以相同字母开头和结尾的单词

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:37 24 4
gpt4 key购买 nike

我最近开始学习 C,并偶然发现了这个练习。我试图找到所有以相同字母开头和结尾的单词。听起来很简单,但我想不出如何让我的程序对数组中的每个单词重复操作。

浏览网页后,我决定使用 strtok,将数组分成单词,然后检查每个单词是否以相同的字母开头和结尾。我最终得到了这段代码,但它不起作用,但编译器也没有显示任何问题。

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

main(){
int i;
int found = 0;
char arr[1000];
char *token;
const char s[2] = " ";

printf("Write your line:\n");
scanf("%s", arr);
token = strtok(arr, s);

while(token!=NULL){
if(token[0] == (strlen(token)-1)){
found++;
}

token = strtok(NULL, s);
}

if(found > 0){
printf("Found %d words that start and end with the same letter.\n", found);
}

return 0;
}

谁能向我解释我做错了什么?我已经看了好几个小时了,但我不知道问题出在哪里。

最佳答案

将scanf改为gets和

f(token[0] == token[strlen(token)-1]

scanf 将空格视为所提供输入的结尾。您还可以在 scanf 下使用说明符 %[^\n],这基本上告诉 scanf 扫描输入直到出现“\n”。
%[^\n] 的缺点是,如果您尝试多次运行该程序,它将不起作用,因为 scanf 从 stdin 获取其输入。因为 stdin 中的最后一个字符将是最后一个“\n”或者输入您提供的内容,它基本上会继续跳过下一个输入,使 gets() 成为更好的选择。

关于C - 以相同字母开头和结尾的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846341/

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