博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串操作复习(一)
阅读量:3903 次
发布时间:2019-05-23

本文共 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/

你可能感兴趣的文章
js中map()和jquery中map()处理数组和对象数据区别
查看>>
web项目中使用的图片放到项目外的目录下的访问
查看>>
JS日期时间的格式化
查看>>
工作中Linux常用命令
查看>>
matplotlib笔记
查看>>
pandas学习笔记
查看>>
Numpy笔记
查看>>
正则表达式
查看>>
python线程进程笔记
查看>>
TensorFlow初学者必须了解的55个经典案例
查看>>
机器学习笔记
查看>>
数十种TensorFlow实现案例汇集:代码+笔记
查看>>
python记录的错误与知识
查看>>
内核中各种套接字的关系
查看>>
c++ typedef 函数指针的用法
查看>>
函数重载是什么意思?它与虚函数的概念有什么区别?
查看>>
链表:利用二级指针删除单向链表
查看>>
数组指针和指针数组的区别
查看>>
常量指针与指针常量的区别
查看>>
求二叉树的高度(非递归) .----美团二面=----硬伤 当时没有答上来
查看>>