字符数组内容的逆序

//有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".
//要求:
//不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
//
 
#include <stdio.h>
#include <string.h>
void fanw(char *left, char *right) //把每个单词单词翻转
{
 char* pleft = left;
 char* pright = right;
 char temp;
 while (pleft < pright)
 {
  temp = *pleft;
  *pleft = *pright;
  *pright = temp;
  pleft++;
  pright--;
 }
}
void fans(char *p)              //把翻转后的单词再翻转 
{
 while (*p != ‘\0‘)
 {
  char *pst = p;
  while (*p != ‘\0‘ && *p != ‘ ‘)
  {
   p++;
  }
  fanw(pst, p - 1);
  p++;
 }
}
int main()
{
 char p[30] = "student a am i";
 int len = strlen(p);
 printf("原字符串为 : %s\n", p);
 printf("翻转后的字符串为 :");
 fanw(p, p + len - 1);
 fans(p);
 printf("%s\n", p);
 return 0;
}
时间: 2024-08-09 14:40:59

字符数组内容的逆序的相关文章

编程题:将数字0~5放入一个整型数组,并逆序输出数组

#include<stdio.h> void main() { int i,a[5]; for(i=0;i<5;i++)         /*给数组中元素赋值*/ a[i]=i; for(i=4;i>=0;i--)          /*逆序输出数组中元素值*/ printf("%3d",a[i]); printf("\n"); } 编程题:将数字0~5放入一个整型数组,并逆序输出数组,布布扣,bubuko.com

把数字存入数组,并逆序输出

void main() { int i=0,k; char c[10]; while(n) { c[i]=n%10+'0'; //把数字变成字符,因为这是一个char数组 n/=10; i++; } s[i--]='\0'; k=i; while(i>=0) { s[i]=c[k--]; //先让s[i]变为'\0'再令 i-1 i--; //把  k-i  变成  i   则变成逆序输出 }} 原文地址:https://www.cnblogs.com/P-juan/p/10057833.htm

求接题目:输入一个字符串输出大小写数字及其他字符的个数并逆序输出

9wwwp0b5mw啥睾约抑汕丶防内肯劝<http://weibo.com/p/230927987600061628162048> rvzxpb9vfd肿氨撩都币涡绰腔脚备<http://weibo.com/p/230927987600585677082624> 18o8arvl2k疽芈孔瞪收抡幻勘特婪<http://weibo.com/p/230927987599767041220608> q4y38xjw2c段斗趁己敲沟钙俜腺甘<http://weibo.co

文本项目系列[1]——逆序字符串

1.需求 逆转字符串——输入一个字符串,将其逆转并输出. 比如:输入字符串为:love.则输出为:evol. 注:在下文中,字符串翻转也是逆序的意思. 2.思路 有两种大的思路: (1) StringBuffer提供了字符串翻转功能,直接利用API即可. (2) 利用String本质是char数组进行字符串逆序. 3.代码 1 package com.myeclipse; 2 3 /** 4 * 逆转字符串——输入一个字符串,将其逆转并输出 5 * @author MrChen 6 * 7 */

利用栈逆序元素

要求:利用栈将数组的元素逆序输出 分析:        1.数组中的元素是线性排列 2.栈的特点是先进后出 解题思路:将数组中的元素依次压栈,再出栈.就能实现对数组元素的逆序 1.定义结构体 #define N 50 struct mystack { int top; //栈顶元素 int data[N]; }; struct mystack selfStack={-1,{0}}; //初始栈为空 2.声明函数 int isEmpty();//判断栈是否为空 返回值:1-->空 0-->非空

程序设计入门——C语言 第1周编程练习 1逆序的三位数(5分)

第1周编程练习 查看帮助 返回 第1周编程练习题,直到课程结束之前随时可以来做.在自己的IDE或编辑器中完成作业后,将源代码的全部内容拷贝.粘贴到题目的代码区,就可以提交,然后可以查看在线编译和运行的结果.不要在程序中输出题目要求输出的内容以外的东西. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 逆序的三位数(5分) 题目

递归逆序的使用

在下面这个程序片段中的划线处填上适当的表达式,使之逆序输出数组元素. -------------------------------------------------------------------------------- void recur(int a[], int k)        {                int tmp;                if(_____)                {                        recur(___

C语言程序设计_浙江大学——第1周编程练习_逆序的三位数

1 逆序的三位数(5分) 题目内容: 逆序的三位数: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 提示:用%10可以得到个位数,用/100可以得到百位数....将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果. 注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能.这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出. 输

数组中的逆序对与归并中的分治思想

首先考虑归并排序: 归并排序为什么能相比普通的排序方法,将时间复杂度从O(n^2)提升至O(nlogn)? 最主要的一点是引入了两个有序数组合并的思想,真正提升效率就是在这个地方. 首先我们考虑,如果两个数组无序的话,比如: 如果使用O(n^2)的方法,在这样一个数组中,每一个数都要跟其他的数比较一下,这样复杂度就为n*n=n^2 而如果这两个数组是有序的呢? 我们用两个指针p1和p2分别指向两个数组的尾部:首先49比97小,97放入排序数组的尾部,因为它是最大的: 然后移动p2至65,再次与4