练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序

原创 2016年05月30日 23:21:46
#include <stdio.h>
#define MAXLINE 1000
int getline(char s[],int lim);
void reverse(char to[],char from[]);

main()
{
    int len;
    char line[MAXLINE];
    char reverse_line[MAXLINE];
    while((len=getline(line,MAXLINE))>0){
        reverse(reverse_line,line);
        printf(reverse_line);
    }
}

int getline(char s[],int lim)
{
    int c,i,j;
    j=0;
    for(i=0;(((c=getchar())!=EOF) && (c!='\n'));++i){
        if(i<lim-2){
           s[j]=c;
           ++j;
        }
    }
    if(c=='\n'){
        s[j]=c;
        ++j;
        ++i;
    }
    s[j]='\0';
    return i;
}

void reverse(char to[],char from[])
{
    int i,j;
    i=0;
    while(from[i]!='\0')
        ++i;
    --i;
    j=0;
    while(i>=0){
        to[j]=from[i];
        ++j;
        --i;
    }
    to[j]='\0';

}

输入abc,输出多了一行空格,原因在于\n颠倒到开头了

abc

cba

修改函数体、函数声明和函数调用

void reverse(char s[])
{
    int i,j;
    char temp;
    i=0;
    while(s[i]!='\0')
        ++i;
    --i;
    if(s[i]=='\n'){
        --i;
    }
    j=0;
    while(j<i){
        temp=s[j];
        s[j]=s[i];
        s[i]=temp;
        --i;
        ++j;
    }
}

编写函数reverse(s),将字符串s中的字符顺序颠倒过来

//编写函数reverse(s),将字符串s中的字符顺序颠倒过来 //Write a function reverse(s) that reverses the character string s...
  • zhangchao3322218
  • zhangchao3322218
  • 2011年09月14日 09:17
  • 3575

reverse函数:反转容器内容

reverse函数可以反转一个容器中的内容,包含在库中。 1、函数原型 reverse函数等同于下面的代码: template void reverse (BidirectionalItera...
  • u012877472
  • u012877472
  • 2015年11月01日 11:52
  • 4460

练习1-19 编写一个函数reverse(s),将字符串s中的字符顺序颠倒过来。(原书第22页)

1 strlen()函数和sizeof()的区别 strlen()是函数,要在运行时才能计算。参数必须是字符型指针(char*), 且必须是以'\0'结尾的。当数组名作为参数传入时,实际上数组就退化成...
  • qq_27312943
  • qq_27312943
  • 2015年09月01日 22:51
  • 655

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。自己的:思路最开始的思路是在函数里新建一个字符数组,将输入...
  • u013289703
  • u013289703
  • 2016年09月23日 17:58
  • 709

Java中反转字符串我所知的五种方法

五种方法已经封装到类中,话不多说,直接上代码。 package com.imooc.strreverse; import java.util.Stack; public class Reverse ...
  • zdqdj1
  • zdqdj1
  • 2016年06月28日 01:44
  • 3333

字符串逆序/递归逆序/比较排序法+逆序

用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下: (1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。       调用Inverse(...
  • u013232740
  • u013232740
  • 2015年01月31日 20:02
  • 1533

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

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

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。

练习1-19 编写函数 reverse(s),将字符串s 中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。自己的:思路最开始的思路是在函数里新建一个字符数组,将输入...
  • u013289703
  • u013289703
  • 2016年09月23日 17:58
  • 709

练习1-19 编写一个函数reverse(s),将字符串s中的字符顺序颠倒过来。(原书第22页)

1 strlen()函数和sizeof()的区别 strlen()是函数,要在运行时才能计算。参数必须是字符型指针(char*), 且必须是以'\0'结尾的。当数组名作为参数传入时,实际上数组就退化成...
  • qq_27312943
  • qq_27312943
  • 2015年09月01日 22:51
  • 655

1.19 编写函数reverse(s)将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。

1. 自己写的, 用的for循环逆序输出。s[i] 已经存储了字符串 不用在输入 且注意输出格式问题。 void reverse(char s[]) { int j, i; //for (...
  • whdugh
  • whdugh
  • 2012年11月02日 12:22
  • 5478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序
举报原因:
原因补充:

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