OJ题:将一个字符串顺序翻转

题目描述

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。

之前写过这样的一个程序,用位运算的方法去操作指针,但是那样的方法未免就有点复杂啦,不如用以下这种,简单明了。

程序如下:

#include <stdio.h>
#include <string.h>

int main(void)
{
    int i ;
    char str[5000] = {0};
    gets(str) ;
    int str_len = strlen(str);
    for(i = str_len - 1; i >= 0 ; i--)
        printf("%c",str[i]);
    return 0 ;
}
时间: 2024-11-14 11:57:51

OJ题:将一个字符串顺序翻转的相关文章

OJ题:字符串分隔

题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc 123456789 输出例子: abc00000 12345678 90000000 程序如下: #include<stdio.h> #include <string.h> int main() { int i = 0

C语言左旋转字符串与翻转字符串中单词顺序的方法_C 语言

左旋转字符串题目: 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串 abcdef  左旋转 2  位得到字符串 cdefab.请实现字符串左旋转的函数. 要求时间对长度为 n  的字符串操作的复杂度为 O(n),辅助内存为 O(1). 分析: 网上看到解法很多种,就不详细说明了. 我采用的是数组不对称的交换时间复杂度应该是O(n). 代码实现(GCC编译通过): #include "stdio.h" #include "stdlib.h&qu

c语言-新手OJ, C语言 字符串顺序后移模块,超时,优化无思路 求大神对指点

问题描述 新手OJ, C语言 字符串顺序后移模块,超时,优化无思路 求大神对指点 for(i=1; i<=m; i++){ a=z[n]; for(p=&z[n]; p>=&z[2]; p--)p=(p-1); z[1]=a; } ++++++++++++++++++++++++++++++++++++++++ 作用:将数组z[n]中的所有元素进行向右移m位, 多出来的左端补上. 例如: 12345 m=1 变成 51234 但是我的算法效率太低, 当数组很长, m很大时超时,

课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以&amp;amp;#39;\0&amp;amp;#39;结尾。

问题描述 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 解决方案 void foo(char * s) { if (!s) return; foo(s + 1); printf("%c", *s); } 解决方案二: void function(char *p) { if(*p=='/0') return ; function(p+1); printf("%c&q

字符串格式不正确 将一个字符串转换为datatime,先分析字符串以获取日期 。怎么改啊求高手帮忙

问题描述 字符串格式不正确 将一个字符串转换为datatime,先分析字符串以获取日期 .怎么改啊求高手帮忙 string sql1 = "insert into shuju(sid,m1,date,time1,time2,m2,state,m3,status,m4,tq_state,m5,msg_count,m6,msg_bytes) values ('" + Convert.ToSingle(sid.Trim()) + "','" + Convert.ToSin

strlen-下面程序的功能是将一个字符串str的内容颠倒过来,请填空

问题描述 下面程序的功能是将一个字符串str的内容颠倒过来,请填空 下面程序的功能是将一个字符串str的内容颠倒过来,请填空. main() {int i, j,_____________: char str[]={"1234567"}: for(i=0,j=strlen(str) : i<j:i++,j--) { k=str[i]: str[i]=str[j]: str[j]=k: } printf("%sn", str): } 解决方案 main() {i

C++实现将一个字符串中的字符替换成另一个字符串的方法_C 语言

本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考.具体方法如下: 题目要求: 原地实现字符串中的每个空格替换成"%20",例如输入"We are happy", 输出"We%20are%20happy" 被替换的字符串当然不仅仅是空格,上面只是个例子 这是道很好的题目,也是百度面试中的一道题,题目不难,但是问题得考虑全面.这里给出如下实现代码: #include <iostream> #inc

c语言-一个OJ题,数字太大,计算机没法存储,如何解?

问题描述 一个OJ题,数字太大,计算机没法存储,如何解? http://219.218.128.149/JudgeOnline/problem.php?id=1261 这是这道题的地址,3个区域,A,B,C 开始在A,跳到别的区域,不能原地跳,且最后一次跳只能跳回A,输入跳的次数n,问一共有多少种跳法,最后把跳法数%10000,我算法已经弄好,但是发现跳法数太多,计算机无法存储,最高到2^1000,怎么解决? 解决方案 总结规律呗,不需要很多内存的

OJ题:字符串最后一个单词的长度

题目描述 计算字符串最后一个单词的长度,单词以空格隔开. 输入描述: 一行字符串,非空,长度小于5000. 输出描述: 整数N,最后一个单词的长度. 输入例子: hello world 输出例子: 5 程序如下: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char str[5000] = {0}; int count = 0 ,start; gets(str);