// HJ02.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
int chcmp_i(char c1, char c2) {
// 都转换大写比较
return (c1 & 0xdf) - (c2 & 0xdf);
}
int charOccur(char *s, char c, int (*cmp)(char, char)) {
// 空字符串
if (s[0] == '\0') {
return 0;
}
// 单个字符的字符串
if (s[1] == '\0') {
return cmp(s[0], c) == 0 ? 1 : 0;
}
size_t occur = 0;
for (; *s != '\0'; s += 1) {
if (cmp(*s, c) == 0) {
occur += 1;
}
}
return occur;
}
int mystrcpy(char* s, const char* cs) {
const char* p = cs;
while (*p) {
*s++ = *p++;
}
*s = '\0';
return p - cs;
}
int main()
{
char s[BUFSIZ] = { '\0' };
char c;
std::cin.get(s, BUFSIZ).get();
std::cin.get(c);
// mystrcpy(s, "ABCabc"); c = 'A';
// mystrcpy(s, "c"); c = 'j';
// mystrcpy(s, "8 8 8 8A i i OOI IIIaa"); c = 'A';
// std::cout << s << "\n";
// std::cout << c << "\n";
std::cout << charOccur(s, c, chcmp_i);
}
读取1行
########### C++ ###########
#include <iostream>
char s[BUFSIZ]={'\0'};
std::cin.get(s, BUFSIZ).get(); // 去掉结尾'\n'
########### C ###########
#include <stdio.h>
#include <string.h>
char str[5000] = {0};
fgets(str, sizeof(str), stdin);
读取1个字符
char c;
std::cin.get(c);
int c = 0;
fgetc(c);
下一篇: