#include

using namespacestd;void func(int *p, int n, intk);voidmain()

{int a[]={1,2,3,4,5};inti;

func(a,5,2);for(i=0;i<5;i++)

cout<

cout<

}void func(int *p ,int n, intk)

{inttemp;inti;

k=k%n;//n是总长度,k是移位位数,实际移位k%n

if(k>=0)//右移

{while(k)

{

temp=p[n-1];for(i=n-1;i>0;i--)

p[i]=p[i-1];

p[0]=temp;

k--;//临时数组存放最后一个数据,然后依次后移,k--;

}

}else if(k<0)

{

k=k*(-1);//左移

while(k)

{

temp=p[0];for(i=1;i

p[i-1]=p[i];

p[n-1]=temp;

k--;//临时数组存放第一个数据

}

}

}

View Code

7、数组循环移位

10.将字符串中的所有字母都替换成该字母的下一个字母

#include

using namespacestd;

#include#include#include

void func(char *p);voidmain()

{char str1[20];

printf("enter:");

gets(str1);

func(str1);

puts(str1);

}void func(char *p)

{charch;while(*p)

{ ch=*p;//临时字符//判断是否是字符,且不是z或者Z

if(isalpha(*p)&&(*p!='z')&&(*p!='Z'))、、*p=ch+1;else if(*p='z')*p='a';else if(*p='Z')*p='A';

p++;

}

}

回文判断

#include

using namespacestd;bool func(intm);voidmain()

{intm;

cout<

cin>>m;

cout<

}bool func(intm)

{int i,n=0;

i=m;while(i)

{

n=n*10+i%10;

i/=10;

}//就是把原数的位从低到高取出来,组成新数,两个数搞出来看看是否相等。。

if(m==n)return true;return false;

}

View Code

字符串转成整数

#include #include#include

using namespacestd;int func(chara[]);voidmain()

{char a[]={'1','2','3','4','\0'};

cout<

}int func(chara[])

{int i=0;int sum=0;while(a[i]!='\0')

{

sum=sum*10+(a[i]-'0');

i++;

}returnsum;

}

View Code

下面就说说为什么字符减'0'可以到相应的整数。现在比如我们要字符‘1’转换成数字1,就这么一个变化,我们看到了大家注意了字符型常量用''括起来的原因是,它们在计算机中都以各自的ASCII表示。而‘1’的对应编码是49的二进制码,但是我们的数字1,就等于1呀,所以为了由原来的‘1’实际上就是49的二进制变成现在的1对应的二进制1,只好用49-48=1了。但是在ASCII码里‘0’对应的刚好是48的二进制码,所以我们转换的时候只需要‘1’-‘0’=1;就可以了。而数字的ASCII码是按顺序规定的。所以其它字符要转换成数字都可以用减‘0’来表示。比如‘2’的ASCII是50,而我们要得到数字2,于是用‘2’-48=2了。看来当我们知道数据在计算机中的存储规则的时候,问题就迎刃而解了。

大小写字母的转换:先看ASCII码:a~z是97~122的二进制,而A~Z是65~90的二进制编码,于是我们就得出:大写字母=小写字母-32 ;这个公式了。当然这里的32我也可以这么写‘Z’=‘z’-'空格'。因为空格的ASCII码是32对应的二进制编码。

#include #include

int main(void)

{floatn;char *str = "12345.67";

n=atoi(str);

printf("string = %s integer = %f\n", str, n);return 0;

}

View Code

#include #include

intmain()

{char a[] = "-100";char b[] = "123";intc ;

c= atoi( a ) +atoi( b ) ;

printf("c = %d\n", c) ;return 0;

}

View Code

int atoi(const char *nptr);

参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零,头文件: #include

13.求一个二维数组每列的最小值

#include

using namespacestd;void fun(int input[3][4], const int m, const int n, int output[4]);intmain()

{int input[3][4] = { {21,48,86,92},

{10,23,12,69},

{46,78,49,13}};int output[4];

fun(input,3, 4, output);

cout<

{for(int j=0; j<4; j++)

{

cout<

}

cout<

}

cout<

{

cout<

}

cout<

}void fun(int input[3][4], const int m, const int n, int output[4])

{int i = 0;int j = 0;for (i=0; i

{

output[i]= input[0][i];//暂存每一列的第一行元素

for (j=0; j

{if (output[i] >input[j][i])

{

output[i]= input[j][i];//依次比较得到每一列的最小值

}

}

}

}

View Code

14.连续字符统计(如AABCCCD:A2B1C3D1)

#include #include#include

using namespacestd;void func(char str[],intlen);voidmain()

{char str[20];intlen;

cout<

gets(str);

len=strlen(str);

func(str,len);

}void func(char str[], intlen)

{int count=1;inti;for(i=0;i

{if(str[i]==str[i+1])

count++;//利用数组比较,也可用指针

else{

cout<

count=1;//碰到新元素。回归为0;

}

}

cout<

}

View Code

15.找出一个字符串中是否包含相同的子字符串(要求子串长度大于等于2)

包含文件:string.h

函数名: strstr

函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。

返回值:返回该位置的指针,如找不到,返回空指针。

例子:

char str[]="1234 xyz";char* str1=strstr(str,"34");cout<

原型:char * strncpy(char *dest, char *src,size_tnum);功能:(c/c++)复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。注意:并不是添加到destination的最后,而是紧跟着由source中复制而来的字符后面。下面举例说明[1]:

char des[] = "Hello,i am!";char source[] = "abc\0def";strncpy(des,source,5);此时,des区域是这样的:a,b,c,\0,\0,逗号,i,空格,a,m,!

注意:\0,\0并不是添加在!的后面。

没看懂

#include #include

using namespacestd;int fun(char* str, intn)

{char *temp = new char[n+2];char *str2 =str;int sum = 0;int outsum = 0;char*t;for(int i = 0; i < n; i++)

{for(int j = 2; j <= n-i; j++)

{

sum= 0;

str2= str;//赋

memset(temp,0,(n+2)*sizeof(char));//初始化0

strncpy(temp, str+i, j);//

while((t = strstr(str2,temp)) !=NULL)

{

sum++;

str2= t+j;

}if( sum >outsum)

{

outsum=sum;

}

}

}if(outsum == 1)return 0;returnoutsum;

}intmain()

{char strstr[1000];

memset(strstr,0,sizeof(strstr));char *s =strstr;

cin>>s;int n =strlen(s);intoutsum;

outsum=fun(s,n);

cout<< outsum <

system("pause");return 0;

}

View Code

16.已知:yi er san si wu liu qi ba jiu 分别对应123456789,对一段只含有这几种字符的字符串进行转换,转换成相应的数字

#include #include

using namespacestd;char* sss[9] = {"yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};int fun(char*str)

{inti;int sum = 0;int d = 0;

i= 0;intj;while(str[i] != '\0')

{if(str[i] == 'y' || str[i] == 'e'|| str[i] == 'w' || str[i] == 'q' || str[i] == 'b')

d= 2;else if(str[i] == 'l' || str[i] == 'j')

d= 3;else if(str[i] == 's')

{if(str[i+1] == 'a')

d= 3;else d = 2;

}//确定碰到字符时移动的距离d

for(int k = 0; k < 9; k++)

{if(strncmp(str+i,sss[k],d) == 0)//匹配成功

j = k+1;//实际数字

sum = 10*sum +j;

}

i= i+d;//每比较一个字符串移动的距离//不考虑字符串不匹配的情形

}returnsum;

}intmain()

{char strstr[1000];

memset(strstr,0,sizeof(strstr));char *s =strstr;

cin>>s;intoutsum;

outsum=fun(s);

cout<< outsum <

system("pause");return 0;

}

17.删除字符串中字符个数最少的字符串

暂时没看懂

#include

#include

using namespace std;char* fun(char* str,int n)

{

int i=0; int j=0; int hash[256] = {0}; char *result = new char[n+1]; memset(result,0,(n+1)*sizeof(char));//开辟字符指针并初始化

for( i = 0;i < n; i++)

{

hash[str[i]]++;}

//每个字符的个数。用哈希值表示

int min= 0x7fffffff;for( i= 0;i < 256; i++)

{

if(hash[i] < min && hash[i] != 0)

min= hash[i];}

for(i= 0,j = 0;i < n; i++)

{

if(hash[str[i]] !=min)

{

result[j++] = str[i];}

}

return result;}

int main()

{

char strstr[1000]; memset(strstr,0,sizeof(strstr)); char *s = strstr; cin >> s;char *re= NULL;re= fun(s,strlen(s));cout << re << endl; system("pause"); return 0;}

View Code

C:

#include"stdio.h"//这个头文件包含gets()函数

int main(void)

{

char str1[5];gets(str1);printf("%s\n", str1);return 0;}

C++:

#include

using namespace std;int main()

{

char str[100];gets(str);cout<

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为:

gets(s);其中s为字符串变量(字符串数组名或字符串指针)。

gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。

18.比较两个字符串,相等返回1,不等返回不等的位置

#include

#include

#include

using namespace std;void func(const char *str1,const char*str2);

void main()

{

char *str1,*str2; str1=new char[256]; str2=new char[256]; memset(str1,0,256*sizeof(char)); memset(str2,0,256*sizeof(char)); cout<

//从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读//取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

func(str1,str2);}

void func(const char *str1,const char*str2)

{

int m,n; int k=0; int l,j; int i=0; m=strlen(str1); n=strlen(str2); while(*str1!='\0')

{

if(*str1==*str2)//||(abs(*str1-*str2)=='a'-'A'))

{str1++; str2++; k++;//k是位置。

}

else break;}

if(k==m&&n==m)//完全相等则为1

cout<

cout<

View Code

19.比较两个字符串是否相等,大小写也算相等

#include

#include

#include

using namespace std;bool func(const char *str1,const char*str2);

void main()

{

char *str1,*str2; bool m; str1=new char[256]; str2=new char[256]; memset(str1,0,256*sizeof(char)); memset(str2,0,256*sizeof(char)); cout<

bool func(const char *str1,const char*str2)

{

int m,n; int k=0; m=strlen(str1); n=strlen(str2); if(m!=n)

return false;else

{

while(*str1!='\0')

{

if(*str1==*str2||(abs(*str1-*str2)=='a'-'A'))//大小写的处理,相减为32

{str1++; str2++; k++;}

else break;}

}

cout<

return true;else

return false;}

View Code

20.将一句英文的每个单词的第一个字母大写

#include

#include

#include

using namespace std;void func(char *ptr);

void main()

{

char *ptr;

ptr =new char[256];

memset(ptr, 0, sizeof(ptr));

cout<

gets(ptr);

func(ptr); cout<

void func(char *ptr)

{

char *ptr1;

ptr1=new char[256]; memset(ptr1, 0, sizeof(ptr1));

ptr1 = ptr;if(*ptr1

*ptr1=*ptr1;

else

*ptr1 -= 32;

while(*ptr1!='\0')

{

if(*ptr1==' ')

{

if(*(ptr1+1)

*(ptr1+1)=*(ptr1+1);

else

*(ptr1+1) -= 32;

}

ptr1++;

//空格后的第一个字符大写,减去32.

}

}

View Code

swap(a,b)值交换的四种方法:

[cpp]

void swap(int &a, int &b)

{

//方法一:

int tmp = 0;

tmp = b;

b = a;

a = tmp;

//方法二:

//a = a+b;

//b = a-b;

//a = a -b;

//方法三:

//a ^= b ^= a ^= b;

//方法四:

//a = a+b-(b=a);

}

int main(void)

{

int a = 3;

int b = 4;

printf("before swap: a = %d, b = %d\n", a, b);

swap(a, b);

printf("after swap: a = %d, b = %d\n", a, b);

return 0;

}

结果:

before swap: a = 3, b = 4

after swap: a = 4, b = 3

关于传参方式有三种:值传参、地址传参、引用传参(C++方法),上面使用的是第三种,引用传参,因为这种传参方式使得swap里面实现更为直观。当然,也可以使用第二种传参方式地址传参,不过,值传参是不行的哦。

华为机考MySQL_华为机考2相关推荐

  1. 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...

    原标题:华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹 华为手机之所以备受关注,主要是在最近几年时间里,国产手机虽然都取得了不错的成绩,但是相较于三星和iPhone来说,相差甚远 ...

  2. 华为魔术手机拆机图解_华为P40 Pro上手体验

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮 山猫潮品:手机渠道直供, ...

  3. 华为p30是不是鸿蒙芯片,鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史...

    原标题:鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史 鸿蒙OS+麒麟1020 5G芯片华为P50 Pro,华为P30沦为白菜机改写历史 华为P50Pro屏幕规格也不 ...

  4. 华为2014校园招聘的机试题目

    华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...

  5. 华为硬件工程师社招机考题库_干货:2016年华为中兴硬件工程师笔试题目与经验...

    1.一位工科男在拿到华为实习生offer后的面经干货 某211学校,机械学院研究生. 不得不说一下,华为的员工们真的是认真做事,因为怕我们担心下班轮不到面试.工作人员特意去休息区告诉我们,不面试完他们 ...

  6. 华为魔术手机拆机图解_华为P9进水不显示维修案例

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮 山猫潮品:手机渠道直供, ...

  7. 这就是华为Mate 30 Pro真机了,价格或许要高攀不起了?

    经历了较长时间的一段曝光,预热看到了苗头,华为官方也不藏着掖着了,前天终于公布了Mate30系列旗舰将于9月19日在德国慕尼黑首发. 关于华为Mate30系列的外观渲染图就从未断过,一会说是齐刘海,一 ...

  8. 华为魔术手机拆机图解_华为荣耀20进水不开机

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名 故障描述: 华为荣耀20进水不开机,加电很 ...

  9. 华为服务器如何开机自动启动不了,华为手机开不了机停在开机画面怎么办【详解】...

    手机对于我们来说都是不陌生的,因为手机的发展太迅速了,同时也加快了手机的普及率.而智能手机的更新速度也是非常的快的.功能和性能也变得越来越好了,尤其是华为手机这几年变化真的是非常的大的,但是很多华为手 ...

最新文章

  1. ML之SVM:利用Js语言设计SVM算法(SMO算法+线性核/高斯核)
  2. Matlab进行录制、存储、绘制、读取音频
  3. Spring Boot(十七):使用Spring Boot上传文件
  4. ref获取元素 vue 删除子元素_vue中的 ref 和 $refs
  5. BT5 设置Ubuntu主题和字体
  6. 矩阵中的最长递增路径
  7. 感谢大家对我微软TECHED2013课程的支持
  8. KafkaConsumer.poll : Timeout must not be negative
  9. 编写代码注释的最佳实践
  10. Java static静态关键字 有啥用
  11. 如何解决mac在访达里不可以新建txt文本的问题?
  12. @Transactional注解属性(3)
  13. 男友问别人:你裙子里穿什么了?
  14. 181023词霸有道扇贝每日一句
  15. html网页添加友链,教你如何添加网站友情链接
  16. 计算机辅助数控编程交互图形,第六章 计算机辅助数控编程.ppt
  17. Python学习笔记——入门(IDLE的使用、标准库和模块、测试和调试、虚拟编程环境)
  18. linux批量追加内容,利用sed的追加功能批量在文件中追加内容
  19. 浙大翁恺pat练习题_中国大学MOOC-翁恺-C语言-PAT习题及解答-第二周
  20. 中秋节到了,为什么你不回家?

热门文章

  1. Unsafe 类的学习
  2. 区块链 每日早报 1108
  3. 【渝粤题库】陕西师范大学209018 现代城市管理 作业
  4. 巴比伦富翁的财富课 -- 第一课
  5. HandsOn-ML学习笔记(1)用机器学习方法解决简单回归问题
  6. VMware VCSA 8.0 Install
  7. 使用 springboot + mybatis-plus 连接firebird(火鸟数据库)
  8. 下载安装SQL Sever 2022全过程
  9. 配置memcached监听本地回环地址127.0.0.1
  10. 学习笔记|生成对抗网络(Generative Adversarial Networks,GAN)——让机器学习具有创造力