练习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...

【C语言】编写函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值吧value的二进制位模式从左到右翻转后的值。

/*编写函数 unsigned int reverse_bit(unsigned int value); 这个函数的返回值吧value的二进制位模式从左到右翻转后的值。 如在32位机器上25这个值包...

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

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

笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数

#include #include #include void linkString(int count, char *chptr[]); /** 考察点就一个 指针数组 指针数组的意思是:...
  • JQ_AK47
  • JQ_AK47
  • 2016年11月14日 21:59
  • 348

编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。

#include #include #include char *unescape(char s[], char t[]); char *escape(char s[], char t[]); ...
  • whdugh
  • whdugh
  • 2012年11月14日 09:37
  • 4207

编写一个search(s)的函数,将当前目录及其所有子目录下查找文件名包含指定字符串的文件,打印完整路径

编写一个search(s)的函数,将当前目录及其所有子目录下查找文件名包含指定字符串的文件,打印完整路径...

读入一个c程序,并按字母表顺序分组打印变量名,每组前N个字符相同(TCPL 练习6-2)

在建立结构tnode的过程中,我们没有预设门槛。这道题目就设置了门槛,必须根据前N个字符来进行分组,于是排除了长度小于N的变量,以便减轻负担。 因为要求对变量名分组打印,组别理所应当地应该按照至少是...

【1-23】编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。再c语言中,注释不允许嵌套。

状态机编程思想 @Link: http://www.cnblogs.com/zhanghaiba/p/3569928.html http://blog.csdn.net/yuezhiren/art...

编写一个函数将字符串中的数字字符转化为相应的整数

/* 为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序
举报原因:
原因补充:

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