【面试常考】C语言:输入:"student a am i",输出"i am a student,不能使用库函数

原创 2016年05月30日 17:14:20
#include<stdio.h>
#include <assert.h>

void my_reverse(char *left ,char * right)
{
 assert(left);
 assert(right);   //用以处理指针函数为空,保证有效
 
 while(left < right)
 {
      char tmp =  *left;  //借助中间变量实现逆置
      *left =  *right;
      *right = tmp;
      left ++;
      right --;
 }
 
}


int my_strlen(char *str)//得到数组长度定义求取字符串长度的函数
{
     int count = 0;
     while(*str++)
     {
          count ++; 
     } 
     return count; //返回count指向int型的具体值
}


void reverse(char arr[])  //char *arr
{ 
     char *pstart = arr;
     char *pend = arr + my_strlen(arr) -1; //注意数组从0开始
     char *pcur = NULL;
     if((arr == NULL) || (arr[0]=='\0')) //空数组或数组结束,不处理
     {
          return ;   
     }
     my_reverse(pstart,pend);  //逆置整个数组
     while(*arr)//不为NULL,为‘\0’的情况
     {
          pcur =arr;  //数组开始地址
          while(*arr !='\0' && *arr !=' ')  //在单词内部时
          {
               arr++;
          }
          pend =arr - 1;  //退一位
          my_reverse(pcur, pend);    //逆置遇到空格的单词
          if(*arr == ' ')  //说明后面还有单词 
          {
               arr++; 
          }
     }
}


int main()
{
     char arr[] = "student a am i";  
     //思路:先将字符串逆置,再遇到空格处将该单词逆置即可
     reverse(arr);
     printf("%s\n",arr);
     return 0; 
}

wKiom1Y0Pf-Cth4SAADIeoaWUZc883.jpg

配置Tomcat的访问日志格式化输出

转自:http://goon.iteye.com/blog/1814609
  • zhang_Red
  • zhang_Red
  • 2014年08月24日 20:07
  • 2118

简单面试题::字符串按单词反转

字符串按单词反转 输入格式是:"this is a string" 输出格式是: "string a is this" 要求不能用任何库函数 这个题目看似非常简单,但是用纯C语言且...
  • architect19
  • architect19
  • 2013年05月31日 13:49
  • 7031

面试经典题目:字符串翻转I am a student

题目:写一个函数,将字符串翻转,翻转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数 ,要求单词内字符的顺序不变,句子中单词以空格符隔开。 思路:先反...
  • gotowu
  • gotowu
  • 2015年11月18日 15:15
  • 2203

【C语言】”student a am i “和“we are happy”

1.有一个字符数组的内容为 : “student a am i”, 请你将数组的内容改为”i am a student”....
  • Monster_Girl
  • Monster_Girl
  • 2016年10月16日 12:46
  • 294

有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。

有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”.要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 重点内容...
  • weiaiyisheng_ljj
  • weiaiyisheng_ljj
  • 2017年04月19日 09:32
  • 218

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student

转自:http://www.360doc.com/content/12/0313/16/1429048_194040867.shtml 谢谢观...
  • Luyouzhen
  • Luyouzhen
  • 2015年10月09日 18:17
  • 1902

反转字符串I am a student

//写一个函数,将字符串翻转,翻转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数。 方法是先反转整个字符串,然后再反转字串。譬如先将“I ...
  • tc216
  • tc216
  • 2015年08月25日 14:15
  • 213

面试题------字符串翻转I am a student

题目描述:编写函数,输入一个英文的句子,翻转句子中单词的顺序。要求单词内字符的顺序不变,单词间空格符数量不变。 例如:"I am a student."反转成"student. a am I"。 ...
  • so_geili
  • so_geili
  • 2017年05月02日 10:24
  • 742

【C语言】有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".

有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。...
  • zgw285763054
  • zgw285763054
  • 2016年01月14日 16:54
  • 1120

C 语言字符串 将一行字符串I am a student。逆序输出student。a am I;

方法1 #include #include #define N 4//单词的个数 #define M 20//单词的长度 int main(void) { char str[N][M...
  • ZSS1753936255
  • ZSS1753936255
  • 2016年10月23日 21:27
  • 907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【面试常考】C语言:输入:&quot;student a am i&quot;,输出&quot;i am a student,不能使用库函数
举报原因:
原因补充:

(最多只允许输入30个字)