C语言判断字符串中只允许出现一次
可以使用一个变量来记录是否出现过星号,如果已经出现过,则再次出现星号就不符合要求。
例如:
#include <stdio.h>
#include <stdbool.h>
bool is_valid(char *str) {
bool has_star = false;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == '*') {
if (has_star) {
return false;
} else {
has_star = true;
}
}
}
return true;
}
int main() {
char str1[] = "hello*world"; // valid
char str2[] = "hello**world"; // invalid
char str3[] = "hello world"; // valid
char str4[] = "hello*"; // valid
char str5[] = "hello*world*"; // invalid
printf("%s\n", is_valid(str1) ? "valid" : "invalid"); // output: valid
printf("%s\n", is_valid(str2) ? "valid" : "invalid"); // output: invalid
printf("%s\n", is_valid(str3) ? "valid" : "invalid"); // output: valid
printf("%s\n", is_valid(str4) ? "valid" : "invalid"); // output: valid
printf("%s\n", is_valid(str5) ? "valid" : "invalid"); // output: invalid
return 0;
}
原文地址: https://www.cveoy.top/t/topic/bjTV 著作权归作者所有。请勿转载和采集!