对字符串进行反转,以及内部子字符转的反转
///*
// *定义一个局部的反转函数,用来实现字符串的反转
// * */
//void test4_1(char s[]) {
// int n = strlen(s);
// char c;
// for (int i = 0; i < (n + 1) / 2; ++i) {
// c = s[i];
// s[i] = s[n - 1 - i];
// s[n - 1 - i] = c;
//
// }
//}
//void test4(char s[]){
// test4_1(s);//首先对整个字符串进行反转
// char a[10]="\0";//定义一个局部的反转的存储空间,可根据需要定义大小
// int count=0;//用来指向每次局部反转的开头
// int j=0;//用来存储每一个局部字符串的长度
// int flag=0;//用来存储空格个数,确定循环次数
// for(int i=0;s[i];++i){
// if (s[i]==' '){
// flag++;
// }
// }//确定空格次数
// for (int k = 0;k<=flag;++k){//控制循环次数
// for (int i =count,l=0;s[i]&&s[i]!=' '; i++,++l) {
// a[l] = s[i];
// j = i;
// }//对个子字符串进行分离
// test4_1(a);//分离后进行反转
// for (int i = count,l=0; a[l]; ++i,++l) {
// s[i] = a[l];
// }//将反转后的字符串写回原字符串
// count = j + 2;
// }
//}
////注意:在进行字符串分离和字符串写回的时候要单独用一个变量来循环,函数中的l就是这个作用
////否则会出错,因为字符串的位置不匹配
//int main(void){
// char s[100]="\0";
// gets(s);
// test4(s);
// puts(s);
//}
判断回文字符串
//char test3(char s[]){//判断回文字符串
// int n=strlen(s);
// int flag=0;
// for (int i = 0; i <(n+1)/2; ++i) {
// if (s[i]==s[n-1-i]){
// flag++;
// }
//
//
// }
// char result='n';
// if (flag==(n+1)/2) {
// result='y';
// }
// return result;
//}
//int main() {
// char s[100];
// scanf("%s",&s);
// char c;
// c=test3(s);
// if (c=='y'){
// printf("yes");
// } else{
// printf("no");
// }
//
//}
冒泡排序
///*
// * 冒泡排序
// * 总共需要排序循环n-1次
// * 没次排序n-1-i趟
// */
//int main(void){
// int a[10]={1,2,45,4,78,6,99,8,9,100};
// int temp;
// for (int i = 0; i < 9; ++i) {
// for (int j = 0; j <9-i; ++j) {
// if (a[j]<a[j+1]) {
// temp = a[j];
// a[j] = a[j+1];
// a[j+1] = temp;
// }
// }
//
// }
// for (int j = 0; j < 10; ++j) {
// printf("%d ",a[j]);
// }
//}
简单选择排序
///*
// * 选择排序
// * 排序n趟
// * 每趟遍历i->n-1找出最大或最小值
// * 进行交换,得出完整的排序
// */
//int main(void){
//int a[10]={10,9,8,7,6,90,4,3,2,1};
//int min,key,flag,k;
// for (int i = 0; i<10; i++) {
// min=a[i];
// for (int j = i; j<10; j++) {
// if (a[j]<=min){
// min=a[j];
// flag=j;
// }
// }
// key=a[i];
// a[i]=a[flag];
// a[flag]=key;
// }
// for (int i = 0; i < 10; ++i) {
// printf("%d ",a[i]);
// }
//
//}
直接插入排序
//int main(void){//直接插入排序
//int a[10]={12,45,67,23,5,6,7,9,10,2};
//int x,i,j;
// for ( i = 1; i < 10; ++i) {
// x=a[i];
// for ( j = i-1; j>-1&&a[j]>x ;a[j+1]=a[j],j--) {
// ;
// }
// a[j+1]=x;
// }
// for (int k = 0; k < 10; ++k) {
// printf("%d ",a[k]);
// }
//}
以上内容为学习笔记,仅供参考。如有错误,还请指教。