本文共 2220 字,大约阅读时间需要 7 分钟。
最近复习C语言,发现字符串操作这块都快忘光了。顺便做了几道题,复习一下。
复习函数:
1. #include <string.h> void memset( void buffer, int ch, size_t count );功能: 函数拷贝ch 到buffer 从头开始的count 个字符里, 并返回 buffer指针。
memset() 可以应用在将一段内存初始化为某个值。
例如:memset( the_array, ‘\0’, sizeof(the_array) );
这是将一个数组的所以分量设置成零的很便捷的方法。 题目: 输入个整数以空格隔开以0结束,并输出,且输出整数的个数和个数最多的整数值。 N<100,整数在1~100之间。 如:输入:2 12 2 5 :
输出:2 12 2 5 4 2 此处为了统计最多的是哪一个采用数组标记的方法: 如有三个12输入,则data[12]=3;//输入N个整数,输出,,输出次数最多的 int data[100]; int max = 0; //先用于统计个数,后面标记最多 memset(data, 0, 100);//数组初始化 int in=0; //用于接收输入 do { cin >> in; if (in == 0) break; cout << in<<" "; data[in]++; max++; } while (0 != in); cout << max << " "; //输出输入个数 max = 0; //找出输入最多的数字 for (int i = 1,in=0; i < 100; i++) { if (data[i] > in) { in = data[i]; max = i; } ; } cout << max << endl;
**2. #include <ctype.h> **
int islower( int ch );
功能:如果参数是小写字母字符,函数返回非零值,否则返回零值。isupper( int ch );
功能:如果参数是大写字母字符,函数返回非零值,否则返回零值。int isxdigit( int ch );
功能:如果参数是十六进制数字字符(即:A-F, a-f, 0-9), 函数返回非零 值,否则返回零值。int isdigit( int ch );
功能:如果参数是0到9之间的数字字符,函数返回非零值,否则返回零值. char c; scanf( “%c”, &c ); if( isdigit ( c ) ) printf( “You entered the digit %c\n”, c );int toupper( int ch );
功能:函数字符ch的大写形式。int tolower( int ch );
功能:函数字符ch的小写形式。 题目:输入一个英语句子,输出该句子,统计其中单词个数,将所有单词首字母大学。
如: 输入:I am a boy. 输出:4 I Am A Boy. 此处:每个空格之后为每个单词的开头。单词个数为空格个数加一。 代码:string str; char ch[100]; gets_s(ch, 100); str = ch; cout << str << endl;; int count = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == ' '){ i++; str[i] = toupper(str[i]); count++; } } count++; cout << str << endl; cout << "个数:"<<< endl;
题目:
十六进制字符串转化为十进制数字。 第一步:入参检测;** string str; cin >> str; int flag = 1; for (int i = 0; i < str.length(); i++) { //检查输入 if (isxdigit(str[i])); else { flag = 0; } if (flag == 0) { cout << "输入错误" << endl; return; } }**
第二步:求和计算。
** int sum = 0; int temp; for (int i = 0; i < str.length(); i++) { if (isupper(str[i])) { //da写字母 temp = (int)(str[i] - 'A') + 10; } else if (islower(str[i])) { //小写 temp = (int)(str[i] - 'a') + 10; } else { temp = str[i] - '0'; } sum += (temp*pow(16, (str.length() - i - 1))); } cout << sum;**
转载地址:http://ayxen.baihongyu.com/