本题主要完成函数Fun,其功能是:判断字符串s中的字母是否由连续递增字母序列组成(字符串长度大于等于2)。例如字符串uvwxyz满足要求,而字符串uvxwyz不符合连续递增,acfpy虽然递增但不连续,所以不满足要求。 输入 一个全部由小写字母组成的字符串,长度小于30。 输出 如果是连续递增字符串,则输出Yes,否则输出No。用c语言写
时间: 2024-04-14 17:27:32 浏览: 25
下面是用C语言实现的函数Fun,用于判断字符串s中的字母是否由连续递增字母序列组成:
```c
#include <stdio.h>
#include <stdbool.h>
bool Fun(char* s) {
int i;
for (i = 1; s[i] != '\0'; i++) {
if (s[i] != s[i-1] + 1) {
return false;
}
}
return true;
}
int main() {
char s[31];
scanf("%s", s);
if (Fun(s)) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
在上述代码中,我们使用了一个for循环来遍历字符串s中的字符。如果当前字符不等于前一个字符加1,则返回false,表示不满足连续递增的条件。如果循环结束时没有返回false,则说明字符串满足连续递增的条件,返回true。
注意,代码中假设输入的字符串长度不超过30,因此定义了长度为31的字符数组来存储输入的字符串。在实际使用时,可以根据实际情况进行调整。
相关问题
C语言函数fun的功能是:统计字符串中英文字母、空格、数字和其它字符的个数
以下是C语言函数fun的实现,可以统计字符串中英文字母、空格、数字和其它字符的个数:
```c
#include <stdio.h>
#include <ctype.h>
void fun(char *str, int *a, int *b, int *c, int *d) {
while (*str != '\0') {
if (isalpha(*str)) {
(*a)++;
} else if (*str == ' ') {
(*b)++;
} else if (isdigit(*str)) {
(*c)++;
} else {
(*d)++;
}
str++;
}
}
int main() {
char str[100];
int a = 0, b = 0, c = 0, d = 0;
printf("请输入一个字符串:");
gets(str);
fun(str, &a, &b, &c, &d);
printf("英文字母个数:%d\n", a);
printf("空格个数:%d\n", b);
printf("数字个数:%d\n", c);
printf("其它字符个数:%d\n", d);
return 0;
}
```
19. 试编程实现:判断s 所指宇符串中的字母是否由连续递增字母序列(组成宇符串长度大于等于 2)。 例如字符串:urwxyz 满足要求;而字符串:uxwyz 不满足要求。用C语言实现。
以下是使用 C 语言实现的程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool isConsecutive(char *s) {
int i = 0;
while (s[i+1] != '\0') {
if (s[i+1] != s[i]+1) {
return false;
}
i++;
}
return true;
}
int main() {
char s[100];
printf("请输入一个字符串:");
scanf("%s", s);
if (isConsecutive(s)) {
printf("该字符串中的字母由连续递增字母序列组成。\n");
} else {
printf("该字符串中的字母不由连续递增字母序列组成。\n");
}
return 0;
}
```
程序中,`isConsecutive` 函数用于判断字符串中的字母是否由连续递增字母序列组成。其中,通过循环遍历字符串中的每个字符,如果当前字符和下一个字符之间的 ASCII 码差不为 1,则说明不是连续递增字母序列,直接返回 false;如果循环结束,没有返回 false,则说明是连续递增字母序列,返回 true。
在 `main` 函数中,先读入一个字符串,然后调用 `isConsecutive` 函数进行判断,最后输出判断结果。