`

使用c实现按单词进行字符串反转

    博客分类:
  • c
 
阅读更多
简陋实现版本,不考虑复杂情况
input: hello my book
output: book my hello

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void reverse_chars(char *src, int start, int length) {
	char *start_ptr = src + start;
	for(unsigned int i = 0;i < length / 2; i++) {
		char temp = *start_ptr;
		*start_ptr = *(start_ptr + (length -1 - 2 * i));
		*(start_ptr + (length -1 - 2 * i)) = temp;
		start_ptr++;
	}
}

int main() {
	char origin_words[] = "hello my book";
	int words_length = strlen(origin_words);

	reverse_chars(origin_words, 0, words_length);

	int last_index = 0;
	for(unsigned i=0;i<=words_length;i++) {
		if(*(origin_words + i) == ' ' || *(origin_words + i) == '\0') {
			reverse_chars(origin_words, last_index, i - last_index);
			last_index = i + 1;	
		}
	}
	
	printf("%s \n", origin_words);
}


分享到:
评论

相关推荐

    C++反转字符串

    本文将深入探讨如何在C++中实现字符串反转,并提供一个实际的示例源码进行讲解。 首先,C++标准库提供了`&lt;string&gt;`头文件,其中包含`std::string`类,该类提供了一系列方便的方法来操作字符串,包括反转。使用`std:...

    字符串逆序-使用C语言实现的字符串按单词逆序.zip

    本主题将深入探讨如何使用C语言来实现一个字符串逆序的程序,特别是按照单词进行逆序,这在处理文本数据时非常有用。 首先,我们需要了解C语言中的字符串是如何表示的。在C语言中,字符串是由字符数组构成的,以空...

    字符串反转-编辑距离-约瑟夫环的实现

    ### 字符串反转 在计算机科学中,字符串反转是一个常见的操作,主要用于改变字符串中的字符顺序。此过程在很多场合都非常有用,例如数据处理、文本分析等。 #### 实现原理: 根据给定的部分代码示例,我们可以...

    (Java)反转字符串单词,但不改变标点符号的位置

    这意味着我们不能简单地将整个字符串反转,因为这会打乱单词和标点符号的相对位置。我们需要按照以下步骤进行: 1. **预处理字符串**:将输入的字符串按照空格分割成单词,同时记录下每个单词的起始和结束位置,...

    反转字符串1

    本题主要涉及的是字符串处理和算法设计,具体是实现将英文句子中单词的顺序反转,但保持单词内部字符的顺序不变。在面试或笔试中,这类问题经常出现,因为它能考察到程序员对字符串操作的熟练程度以及逻辑思维能力。...

    编写一个程序,实现字符串大小写的转换并倒序输出

    本任务的目标是通过编程实现一个功能:对输入的字符串进行大小写转换并倒序输出。具体来说,对于输入的字符串中的每个字符,如果是大写字母,则转换为小写字母;如果是小写字母,则转换为大写字母。最终输出的是经过...

    leetcode 151. 翻转字符串里的单词

    6. **字符串反转**:在Python中,反转字符串的一个常见方法是使用切片操作,例如`s[::-1]`,但在这个问题中,我们需要逐个单词反转,而不是整个字符串。 7. **辅助变量**:为了保存中间结果,常常需要使用辅助变量...

    javascript 不用reverse实现字符串反转的代码

    javascript =&gt; [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]JavaScript reverse() 方法 在本例中,我们将创建一个数组,然后颠倒其元素的顺序: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]输出:...

    判断字符串是否中心对称

    在编程领域,中心对称是一种特殊的字符串特性,指的是一个字符串从中心点开始向两边读取,字符顺序完全相同。例如,"abcba" 和 "madam" 都是中心对称的,因为它们分别从中心点'c'和'a'向外读取,都能得到相同的字符...

    字符串操作总结

    本文将对两种主要的字符串操作进行总结:字符串反转和单词反转。 1. 字符串反转 字符串反转是指将一个字符串中的字符顺序颠倒,使得原本在后面的字符现在出现在前面。这里我们有两种实现方法: - 使用`System....

    linux下字符串去重,英文句子倒序功能实现

    在Linux环境下,使用C或C++编程语言,我们可以轻松实现字符串去重和英文句子倒序的功能。下面将详细讲解这两个功能的实现方法。 首先,我们来看如何实现字符串去重。这个功能通常涉及到对字符数组的处理。我们可以...

    输入一个英文句子,翻转句子中单词的顺序

    这是一道典型的字符串处理题目,旨在考察应聘者对于字符串操作的理解及实现能力。 #### 关键知识点详解 ##### 1. 字符串基础概念 - **定义**:字符串是由字符组成的序列,通常用于存储文本信息。 - **表示**:在...

    javascript 实现字符串反转的三种方法

    第一种方法 代码如下:var str = “abcdef”; console.log( str.split(“”).reverse().join(“”) );第二种方法: 代码如下:var str=”abcdef” var i=str.length; i=i-1; for (var x = i; x &gt;=0;...

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

    要实现这样的功能,一种常见方法是分三步进行:首先,反转整个字符串,然后反转前m个字符,最后反转剩下的n-m个字符。这样做是因为反转整个字符串可以将字符串的开头移动到结尾,然后反转前面的m个字符和剩下的n-m个...

    算法修炼之路—【字符串】Leetcode 345 反转字符串中的元音字母

    在算法修炼之路上,我们经常会遇到各种有趣的编程挑战,其中之一便是LeetCode的第345题——反转字符串中的元音字母。本题目的目标是设计一个函数,接收一个字符串作为输入,然后仅反转其中的元音字母。元音字母包括...

    【Python】你需要知道的20个常用的Python技巧.docx

    1. 字符串反转:使用Python的切片反转字符串,可以快速实现字符串反转。 在Python中,可以使用切片(slicing)来反转字符串。例如,`my_string = "ABCDE"`,使用`reversed_string = my_string[::-1]`可以快速反转...

    reverse-the-word.rar_The C Word

    实现单词逆序的关键在于对字符串的处理。在C语言中,字符串是字符数组的特例,通常以空字符'\0'作为结束标志。因此,我们可以通过遍历数组,从后向前复制字符来达到逆序的效果。以下是一种常见的实现方式: ```c #...

    C#中倒序输出字符串的方法示例

    总结来说,C#提供了多种方式来倒序输出字符串中的单词,无论是使用内置的数组反转功能还是手动遍历。理解和掌握这些方法对于提升C#编程技能非常有帮助,同时也为处理文本数据提供了更多可能性。如果你在实践中遇到...

    C/C++代码学习

    这个函数接收一个字符串,首先反转整个字符串,然后逐个单词地再进行反转,从而实现单词顺序的反转。 3. 简单CRC校验 CRC(Cyclic Redundancy Check,循环冗余校验)是一种用于检测数据传输错误的校验码。下面的C...

    第6次课参考代码.zip

    1. **6-2-反转字符串里的单词.c** 这个程序可能实现的功能是将输入的字符串中的单词顺序反转。例如,输入字符串 "I am a student",输出会是 "student a am I"。在C语言中,这通常涉及到字符串的遍历、空格分割以及...

Global site tag (gtag.js) - Google Analytics