我遇到了标题中所述的问题。此处有更多详细信息。
我的问题是:
a) 开发一个 C 函数,它获取一个 char 数组作为输入参数,并确定此 char 数组中没有 'e'
'E'
的最大子字符串。打印该子串的长度。
b) 编写 main 函数来测试 a) 函数。使用 scanf("%[^\n]",...)
或使用 getchar()
例如:输入:“你是一个。” .output:“你是” 长度:6
最佳答案
如果您使用字符串库函数 strtok,解决方案非常简单。使用此函数,它会为您拉出子字符串,然后您只需跟踪最长的一个即可。
temp = strtok(input, "eE");
strcpy(best, temp);
bestLen = strlen(best);
while(temp = strtok(NULL, "eE")) {
if(strlen(temp) > bestLen) {
strcpy(best, temp);
bestLen = strlen(best);
}
}
printf("%s", best);
每次出现 e 或 E 时,strtok 都会拆分您的字符串,并将其返回到您的临时指针中。然后您可以查看临时值,看看它是否足够长以成为新的最佳长度。
关于C程序确定没有 'e'或 'E'的char数组中的最大子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246436/