用指针来完成“you are from shanghai”逆序
2017-07-16 20:32
288 查看
//用指针的方式来逆序,再逆序; #include<stdio.h> #include<string.h> int main() { char a[] = "you are from shanghai"; char temp; char *p1 = a; char *p2 = a + strlen(a) - 1; //找到尾指针; //将整个字符串逆序; while(p1 < p2) { temp = *p1; *(p1++) = *p2; *(p2--) = temp; } // printf("%s",a); puts(a); putchar('\n'); //再进行单词的逆序,遇到一次空格的也就是找到一个单词,然后对这个单词进行逆序; p1 = a; p2 = a;//p1 p2 都指向新的a[]; char *p3 = NULL; while(*p2) //让*p2开始往后遍历空格,直到'\0'; { if(*p2 == ' ') // 判断找到空格 { p3 = p2 -1; while(p1 < p3) //循环交换单词的前后单词; { temp = *p1; *(p1++) = *p3; *(p3--) = temp; } p1 = p2 + 1; } p2++; } //这边当p2等于'\0'时,对'\0'前面的一个单词进行逆序; p3 = p2 -1; while(p1 < p3) { temp = *p1; *(p1++) = *p3; *(p3--) = temp; } puts(a); putchar('\n'); return 0; }
这个当中用了不少if():这是一个判断语句,只是执行一次
而while():这是循环语句,知道括号里的内容为假推出循环(0为假);不要混淆他们的用法!!
-----------------------------------------------------------------------------------------------------------分割线2017.07.19----------------------------------------------------------------------------------------
//使用函数处理you are from shanghai 逆序问题; #include<stdio.h> #include<string.h> //void nixu(char) void nixu(char *arr) { int min = 0; int len = strlen(arr); int max = len-1; while(max > min) { char temp; temp = arr[min]; arr[min++] = arr[max]; arr[max--] = temp; } } int main() { char arr[] = "you are from shanghai"; //先整个数组完全逆序; nixu(arr); //再单词逆序 char *p1 = arr; char *p2 = arr; while(*p2) { if(*p2 == ' ') { *p2 = '\0'; //把空格置'\0',以便于调用的函数可以计算单词的长度len;(因为写的函数当中用到了计算单词长度的strlen,必须要有'\0') nixu(p1); 4000 *p2 = ' '; p1 = p2+1; } p2++; } nixu(p1); puts(arr); return 0; }详细说一下strlen():t=这个函数可以用来要计算字符串的实际长度,因为在写字符串的时候会默认给它后面补上'\0',所以strlen()就是找到'\0',计算'\0'之前的长度;
相关文章推荐
- 李洋疯狂C语言之有关“you are come from shanghai”逆序(二)
- 将you are from shanghai 以shanghai from are you的形式输出
- 李洋疯狂C语言之将”you are come from shanghai ”倒置为”shanghai from come are you”,将句子中的单词位置倒置,而不改变单词内部结构
- liunx 句子的逆序“you are from yangzhou”
- linux 中 句子的逆序“you are from yangzhou”
- java笔试题String字符串单词逆序how are you变成are you how
- 99%的人连Where are you from都不会回答?
- you are calling a UIKit method that can only be invoked from the UI thread.
- You are trying to load data from a www stream which had the following error,Unsupported protocol
- owncloud error : You are accessing the server from an untrusted domain
- Where are you from? 你会怎么回答?[摘自沪江英语网]
- You Are the One(区间dp)(fromHDU)
- How to avoid Excel from prompting "The file you are trying to open, , is in a different format than specified by the file extension"? (转)
- anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg
- This Style does not belong to the supplied Workbook. Are you trying to assign a style from one workb
- where are you from ,where you will go
- you and me ,from one world, we are family
- where are you from
- Change Internal ID of ODI Repository. (ODI-10093: You are importing an object from another)
- Unit 15 Where do you live?Where do you sleep?Where are you from?