首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言题解——倒置字符串(剑指Offer 第58题)

前言 在《剑指Offer》中有这样一道经典题目: 大概意思就是将一句话倒置(左旋),单词位置翻转,但单词内字母不翻转。 比如:I like beijing....左旋后变成 : beijing. like I 可以看到各单词间的空格依然存在,并且字符串总长度保持不变。...很多同学看到这个题目有点懵,不知道从何下手,甚至还产生了把字符串中的单词分别放入不同的数组中,然后再打印的想法,想法不错,可惜并不灵活,万一有N个单词呢?...下面由我带大家学习一下这题的解法: 正文 题目要求输入一句话(字符串),说明需要用数组存储,而且因为由空格,不能使用scanf,这里我们改用gets(arr)存储字符串;字符串有结束标志 '\0',我们可以利用...//字符串倒置 #include #include #include void reverse(char* left, char* right)

35210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    试题 算法提高 递归倒置字符数组

    资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   完成一个递归程序,倒置字符数组。...并打印实现过程   递归逻辑为:   当字符长度等于1时,直接返回   否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分 输入格式   字符数组长度及该数组 输出格式   在求解过程中,打印字符数组的变化情况...最后空一行,在程序结尾处打印倒置后该数组的各个元素。...import java.util.*; public class diguidaozhi { /** * @param args * 试题 算法提高 递归倒置字符数组 */ public...} } 然后这才是正确答案: import java.util.*; public class dgdzzfsz { /** * @param args * 试题 算法提高 递归倒置字符数组

    35520

    【C语言】字符函数

    字符分类函数 C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。这些函数的使⽤都需要包含一个头文件是ctype.h。...2.4 将字符串中的小写字母转大写 我们知道在C语言中‘A’(65)与‘a’(97)相差32,‘B’与‘b’也相差32,就是说大小写字母相差32。...在遍历字符串,就要知道字符串的长度,我们用strlen求字符串长度,而字符串的结束标志是\0,strlen统计的是\0之前出现的字符的个数。...include #include #include int main() { char arr[] = "abcdef"; //a b c...字符转换函数 1.int tolower ( int c ); //将参数传进去的大写字母转小写 2.int toupper ( int c ); //将参数传进去的小写字母转大写 上面的代码,我们将小写转大写

    12310

    C语言 | 字符数组

    C语言字符数组的定义 字符数组是用来存放字符数据的数组,字符数组中的一个元素存放一个字符,定义字符数组的方法和定义数值型数组的方法类似。...//例子: char character[10]; C语言字符数组的初始化 C语言对字符数组初始化,最容易理解的方式是用“初始化列表”,把各个字符依次赋给数组中各元素。...C语言字符串和字符串结束标志  在C语言中,是将字符串作为字符数组来处理的,字符串中的字符是逐个存放到数组元素中的。...为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符‘\0’作为结束标志。 C系统在用字符数组存储字符串常量时会自动加一个'\0'作为结束符。...100道C语言源码案例请去公众号:C语言入门到精通

    5.9K40

    C语言字符(串)函数

    在我们写代码的过程中呢,经常会遇到一些处理字符和字符串的问题,比如将大小写字母的转换,计算字符串长度等,为了方便操作这些字符和字符串,C语言标准库提供了一些库函数,接下来就学习一下这些字符和字符串函数...一、字符函数 字符分类函数 C语言中有专门对字符进行分类操作的函数,简单来说就是判断一个字符是属于什么类型的,这些函数的使用需要头文件 ctype.h 函数具体如下: 这些函数使用起来非常相似...C语言当中提供了2个字符转换函数: int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写 int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写 知道有这样的大小写转换的函数...\n"; char c; while (str[i]) { c = str[i]; if (islower(c)) c = toupper(c); putchar(c); i++;...知识补充: 在不同的系统和C语言标准库的实现中都规定了一些错误码,一般是放在 errno.h 这个头文件中说明的,C语言程序启动的时候就会使用一个全局的变量errno来记录程序的当前错误码,只不过程序启动的时候

    8410

    【C语言】字符常量详解

    C语言字符常量 (Character Constants) 在C语言中,字符常量是一个由单引号括起来的单个字符。例如,'A'、'1'、'+'等都是字符常量。...字符串常量使用双引号括起来,例如"A"表示一个字符串,而'A'表示一个字符。 1.2 字符常量的存储 在C语言中,字符常量存储为整数值,即对应字符的ASCII码。...特殊字符常量 C语言中有一些特殊字符常量,它们用于表示一些不可见字符,如换行符、制表符等。这些特殊字符常量通常以反斜杠'\'开头。...总结 字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。...理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。 7. 参考资料 C语言字符常量 ASCII码表 8.

    23810

    C语言之字符类型

    基本介绍 字符类型可以表示单个字符,字符类型是 char,char 是 1 个字节(可以存字母或者数字),多个字符称为字符串,在C 语言中 使用 char 数组 表示 字符串,数组不是基本数据类型,而是构造类型...基本案例 %c 表示以字符的形式输出 void main() { char c1 = 'A'; char c2 = '0'; char c3 = '\t'; printf("c1=%c c3=%c c2...=%c", c1, c3, c2); //%c 表示以字符的形式输出 getchar(); } ?...字符类型使用细节 字符常量是用单引号(' ')括起来的单个字符。例如:char c1 = 'a'; char c3 = '9'; C 中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。... 数字 对应关系 ) 对应的 97 对应字符输出 char c3 = 97; printf("c1=%c c2=%c c3=%c", c1, c2, c3); getchar(); } ?

    4.8K21

    C语言数组——字符数组

    C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析...VS2019编写简单的C程序示例 简单示例,VS2019调试C语言程序 C语言基础-基本算法 C语言基础-数据类型 C语言中的输入输出函数 C语言流程控制语句 C语言数组——一维数组...C语言数组——二维数组 前面两篇文章分别介绍了一维数组和二维数组,今天我们一起看看字符数组 字符数组 字符数组顾名思义就是数组的元素类型为字符型的数组。...='\0'; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 这时的输出结果中就不含有任何空字符了...如果您觉得本篇文章对您有帮助,请转发给更多的人 【C语言中文社区】是一个C语言视频教程、学习笔记、电子书、计算机二级资料等专注于C语言编程学习者的干货知识分享平台,精选深度文章,分享优秀干货类、技能类的学习资源

    6.2K40

    C语言数组——字符数组

    字符数组 字符数组顾名思义就是数组的元素类型为字符型的数组。特殊之处在于它是数组元素为字符的数组。其定义的一般形式和注意事项与之前讲解的一般数组类似,只是其中的类型说明符是char。...}; for (i = 0; i < SIZE; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 运行结果为“Hello...='\0'; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 这时的输出结果中就不含有任何空字符了,因为巧妙地使用了字符数组中的...= '\0'; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 在对一维字符数组进行定义和初始化的过程中,可以不指定其长度。...‘\0’,所以得到的字符数组长度是字符串常量的长度加1;而采用字符常量列表的方式对字符数组进行初始化就不会在最后添加一个结束符,所以利用这种方式定义的字符数组的长度就是字符常量列表中字符的个数。

    7.6K20

    6.3 C语言字符数组

    例子: char c[10]; 02字符数组的初始化 1、对字符数组初始化,最容易理解的方式是用“初始化列表”,把各个字符依次赋给数组中各元素。...3、例子 char c[10]={'I',' ','a','m',' ',' h','a','p','p','y'}; 把10个字符依次分别赋给c[0]~c[9]这10个元素。...04字符串和字符串结束标志  1、在C语言中,是将字符串作为字符数组来处理的,字符串中的字符是逐个存放到数组元素中的。...2、为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符‘\0’作为结束标志。 3、C系统在用字符数组存储字符串常量时会自动加一个'\0'作为结束符。...9、strupr函数——转换为大写的函数 一般形式: strupr(字符串) 作用:将字符串中小写字母换成大写字母。 9、C语言 | 成绩的等级判别 更多案例可以go公众号:C语言入门到精通

    2.6K2927

    C语言初阶(二)-字符、转义字符、注释

    字符和字符串 字符是单引号括起来的内容,如:‘c’,'\0’等。 字符串是双引号括起来的所有字符,如:“hello world”,"0123456789"等。...字符串结束的标志是’\0’,放在字符串的尾部,并不可见。 转义字符 转义可以理解为转变字符的意义,用来正常输出承担特定功能的字符、或执行特定的功能。...垂直制表符 \b 退格符 光标回退一格,若是开头则不回退 \a 警告字符 发出蜂鸣声 转义字符也是一个字符,只是承担着特定的功能。...分类 使用/*的代码内容*/注释,这是C自带的风格 /* #include int main() { printf("Hello World\n"); return 0; }.../*2 #include int main() { printf("Hello world\n"); return 0; } */3 */4 使用// 来进行注释,这是C+

    1.7K10

    C语言(字符、字符串函数)2

    要特别注意的是,strcmp 函数比较两个字符串比较的不是字符串的长度,而是对应位置字符的ASCII码值。...7、strncpy、strncat 和 strncmp 除了 strcpy、strcat 和 strcmp 外,C语言还提供了更加灵活的 strncpy、strncat 和 strncmp...容易想到的是两个字符串通过指针解引用来一个一个的比较来判断是否存在一个相同的字符串,大致思路如下: (1)逐个字符地访问被查找的字符串,当访问到与目标字符串首字符相同的字符时记住这个可能的地址...在不同的系统和C语言标准库的实现中都规定了一些错误码,一般是放在 errno.h 这个头文件中说明的,C语言程序启动的时候就会使用一个全局的变量 errno 来记录程序当前的错误码,只不过程序启动的时候...C语言函数中还有一个函数和 strerror 函数的功能是相似的,它就是 perror 函数。来看一下它的介绍: 它和 strerror 函数的区别在哪里呢?

    7610

    C语言(字符、字符串函数)1

    1、字符分类函数 C语言中有一些专门作字符分类的函数,使用这些函数需要包含头文件 ctype.h 。...(函数) isdigit 检查字符是否为数字 (函数) isxdigit 检查一个字符是否是十六进制的字符 (函数) iscntrl 检查一个字符是否是控制字符 (函数) isgraph 检查一个字符是否是图形字符...(函数) isspace 检查一个字符是否是空白字符 (函数) isblank (C99) 检查一个字符是否是空格字符 (函数) isprint 检查一个字符是否是可打印字符 (函数) ispunct...检查一个字符是否是标点字符 更多详细内容请点击跳转阅读 —> C 标准库头文件 - cppreference.com 这些函数的使用方法、返回值等基本是一致的,这里就以...2、字符转换函数 C语言中有两个实现大小写转换的函数,tolower(将大写字母转小写) 和 toupper(将小写字母转大写)。

    8110
    领券