我正在尝试创建一个函数来识别一个字符是否在给定字符串中重复。
int checkrow(char* row) {
int count, r;
for(int i = 0; i < strlen(row); i++) {
count = 1;
for(int j = i + 1; j < strlen(row); j++) {
if(row[i] == row[j]) {
count = count + 1;
}
}
if(count > 1 ) {
r = 0;
}
else {
r = 1;
}
}
return r;
}
这是我目前的功能,我没有得到错误或警告消息,但它不能识别重复字符。
我对C很陌生,任何帮助都会很感激!
对于您测试的每个字符,您将r
设置为该字符是否重复。因此,如果第一个字符重复,则设置为r = 0
,但如果第二个字符不重复,则设置为r = 1
。
你不需要测试每个字符。只要找到重复的字符,就可以返回0
。如果到达循环的末尾,没有重复,那么返回1
。
int checkrow(char* row) {
for(size_t i = 0; i < strlen(row); i++) {
for(size_t j = i + 1; j < strlen(row); j++) {
if(row[i] == row[j]) {
return 0;
}
}
}
return 1;
}