1、,ai); return 0;Example3: 将一个二维数组行和列元素互换,存到另一个二维数组里。/ Exchange.cpp : int a23=1,2,3,4,5,6; int b32;array a: n for(int i=0;2; for(int j=0;3;j+)%5d,aij); bji = aij; array b:,bij);Example4: 求一个3*4的矩阵的最大值,并输出其所在的行和列 int i,j,row = 0,colum = 0,max; int a34 = 10,5,36,2,-18,6,28,-36,2,15,-10,-89; max = a00;4;
2、 if(aijmax) max = aij; row = i; colum = j;max = %d,row = %d,cloum = %d,max,row,colum);Example5: 输出一个字符串 char a15=h,ow areyu;11;%c注意单词之间的空格赋值Example6: 利用一个scanf函数输入多个字符串,以空格分开 char str15,str25,str35,str413;input three string: scanf(%s%s%s,str1,str2,str3);%5s%5s%5sninput one string:%s,str4);%sn注:把以n个用
3、空格分开字符串输入给一个字符串数组,则其实数组只接收到第一个空格之前的内容,违背愿望。Example7:输入一行字符串,统计其中有多少个单词,单词之间用空格分开 char str100; int num=1; int word;input strings: gets(str);stri!=0; /*if(stri=) num+; 若只用着一个判断,则如果输入字符串时不小心敲进了很多空格,则结果不对*/ if(stri=) word = 0; else if(word=0) word = 1; num+; There are %d words in the line.n,num);Example
4、8:找出3个字符串中的最大者#include char string20; char str320;input three strings:,stri); if(strcmp(str0,str1) 0) strcpy(string,str0); else strcpy(string,str1); if(strcmp(str2,string) 0) strcpy(string,str2);nthe largest string is :n%sn,string);Example9:选择法排序void sort(int a,int n) int min,t;n; min = i; for(int j
5、=i+1; if(aminaj) min = j; if(min!=i) t = amin; amin = ai; ai = t; int a10 = 3,9,1,8,2,10,7,5,4,6; sort(a,10);%4dExample10: 求一个3*3的整形矩阵对角线元素之和int catercornerSum(int a33) int sum = 0; sum += aii; sum += ai2-i; sum -= a11; return sum; int a33 = 1,2,3,4,5,6,7,8,9; int sum; sum = catercornerSum(a);%dn,su
6、m);Example11:找出一个数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小iostreamusing namespace std; int a34= 124,25,100,31,20,96,216,95,14,25,54,1; int b3; int c4; char x = NULL; char y = NULL; /*cout please input 12 integer numbers: endl; i aij; */ int t = 0; i+) t = ai0; bi = 0; j j+)t) t = aij; bi = j; for(int j=0; t = a0
7、j; cj = 0; for(int i=0; if(aij cj = i; if(i=cj)&(j=bi) x = i+1+48; y = j+1+48; if(x=NULL)&(y=NULL) cout 该二位数组没有鞍点 else cout 鞍点位置:( x , y )endl;鞍点位置数字为: t 说明:分别记下每一行最大值及每一列最小值的位置,该两位置重复的点即是鞍点字符串Example1:编写字符串拷贝函数strcpy/ strcpy.cpp :/char *strcpy(char *strDest, const char *strSrc) char *address = strD
8、est; while( (*strDest+ = *strSrc+) != ) NULL ; return address; char str1=asfasdfasfa int length=0; char *str2=new char20; strcpy(str2,str1);str2: %sn,str2);copy successfully! delete str2;字符串连接函数strcat/ strcat.cpp :char *strcat(char *str1,char *str2) int i=0; int j=0; while(str1i) i+; while(str2j) j+
9、; char *str3 = new chari+j+1; for(int m=0;mi;m+) str3m = str1m;j; str3m+i = str2m; str3i+j= return str3; char *str1 = ggg char *str2=bbbb char * str3 = new char20; str3 = strcat(str1,str2);the string str3 is:,str3); delete str3;Example3: 删除已经在str2中出现过的str1中的字符 char str1 = ahadfggklgfd char *str2 = d
10、ff char *str3 = new char10; int length1 = int(strlen(str1); int length2 = int(strlen(str2); int m = 0;length1;length2; if(str1i = str2j) /str1中的该字符在str2中出现 str1i = str20; /将所有在str2中出现过的str1中的字符全部改为str2的第一字符值 j = length2; /跳出内层for循环i+) /将str1中所有不等于str20的字符挨个赋给str3 if(str1i!=str20) str3m=str1i; m+=1;
11、str3m= /将str3最后加上,str3即为删除后的结果 delete str3;Example4: 字符串倒置,“Just do it”变为“ti od tsuJ”void inversion(char*p1,char*p2) int i; int length=int(strlen(p1);length; p2i=p1length-1-i; p2i = char *p1=Just do it char *p2=new char20; inversion(p1,p2);,p2);Example5: 将字符串中的单词倒置,“Just do it”变为“it do Just”/定义一个字符串
12、倒置函数,其中参数包括字符串及需要到置部分的起点和终点void reverse(char str,int from,int to) int length = to - from; char s;length/2+1;i+) /通过循环将该部分字符串倒置 s = strfrom+i; strfrom+i = strto-i; strto-i=s;Make progress every day to learn abc abcd abcde while(str1length) length+; reverse(str1,0,length-1); /先将str1整个颠倒 /可理解为慢指针 /可理解为
13、快指针 while(str1j) /扫描倒置过的str1 if(j=length) /当还没扫描完str1时 while(str1j!str1j) /碰到空格及为一个单词的倒置,再给颠倒回来就可 j+; reverse(str1,i,j-1); /将快指针指向空格后的第一个字符 i=j; /将满指针指向下一个单词,以便接下来将单词颠倒回来 else /说明已经扫描完 j-; /将快指针指向字符串后的,跳出while循环,str1);统计字符串每个字符出现的次数#include char str150 = ddfd;ljk90()asdHSMAR_ !#$%&*() char *p = new
14、char50; int times; int a50; /用于判断字符是否重复出现 int length1 = 0; while(str1i!) length1+; pm = str10; int length2 = 1; /length2为p指向字符串的长度,初始为 /去掉字符串str1中重复出现过的字符(保留一个即可),把剩余的字符保存到指针p指向的动态存储区 for(int i=1; t = 0; for(int k=0;kk+) if(str1i = pk) t+; /说明该字符重复,t加 if(t=0) /t=0说明该字符没出现过,存入动态存储区 m+; pm = str1i; le
15、ngth2+; pm+1 = /通过与p指向的字符串比较,即可得出每一个字符出现过的次数 ai = 0; if(pi=str1j) ai+;字符串%c出现次数为:,pi,ai);将整型数据转换成字符串类型要将整型数据转换成字符串,首先将整型数据各个数位进行拆分,然后存储到一个数组当中,结尾处补0。例如要将12345转换成字符串,主要思路是将12345先于10取余,结果为5,将5转成字符存储到数组当中,然后将1234除以10再与10取余得到十位上的数4,将4 存储到数组中,以此类推。得到数组54321,再将数组逆序返回。循环的条件控制是判断整数与10相除的结果,如果是0的话结束循环。代码:/ E
16、4.cpp : Defines the entry point for the console application./将int转换为stringchar* ToString(int number) char* str = new char6; int i = 0; while(number/10 != 0) stri+ = number%10 + 48; /字符0比整数大 number = number/10; /去掉个位数 stri+ = number + 48; /将最后一个整数转换为字符 stri = (i-1)/2;j+) /颠倒字符串“” int a = strj ; strj = stri-1-j; stri-1-j = a; return str; int a = 12345; char *str = ToString(a);,str);注意:当循环结束时整数的最高位还未转成字符,所以循环结束后要将最高位转成字符并且要在结尾加上0表示字符串结束。将字符串转换成整型数据/ ToInt.cpp :int ToInt(char *p) int l = 0; int a5; while(pl) al+ = pl -
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1