实现字符串中单词反转

????#include <stdio.h>
int main()
{
    char str[]="student a am i";
    printf("%s\n",str);
    char *p,*q;
    char temp;
    p=q=str;
    while(*q!='\0')
    {
        q++;
    }
    q--;
    while(p<=q)
    {
        temp=*p;
        *p=*q;
        *q=temp;
        p++;
        q--;
    }             //反转整个字符串
    char *s;
    q=p=s=str;     //指针指向开始位置
    while(*q!='\0')
    {
        if(*q==' '||*(q+1)=='\0')
        {
            if(*q==' ')  //处理空格
                p--;
            while(s<=p)  //反转局部字符串
            {
                temp=*p;
                *p=*s;
                *s=temp;
                s++;
                p--;
            }

            s=q+1;
            p=q;
        }
        q++;
        p++;
    }
    printf(str);
    printf("\n");
   return 0;
}

时间: 2024-10-24 09:07:11

实现字符串中单词反转的相关文章

leetcode——Reverse Words in a String 旋转字符串中单词顺序(AC)

题目如下: Given an input string, reverse the string word by word. For example, Given s = "the sky is blue", return "blue is sky the". click to show clarification. Clarification: What constitutes a word? A sequence of non-space characters c

字符串之“统计一个字符串中单词的个数”

题目:统计一个字符串中单词的个数 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 输入:my name is jacky 输出:the number of word is 4 代码如下: #include <stdio.h> int main(int argc, char *argv[]) { char str[80]; int i=0,num=0,flag=0; char c; gets(str); while((c=str[i])!='\0') { if(c==' ') flag

oc将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接

/* 将字符串中单词按照出现次数(次数都不一样)降序排序,排序之后单词只出现一次,源字符串中单词用下划线连接,生成字符串也用下滑线连接(10分) 如传入:@"good_good_study_good_study" 返回:@"good_study" 如传入:@"I_love_I_hate_love_love" 返回:@"love_I_hate" */ 方法1:选择排序 -(NSString *)sortStringByNumbe

翻转字符串中单词的顺序

问题:翻转字符串中的单词顺序,如"hello world"变成"world hello".要求使用常量空间. c++代码如下: void reverse(string &s, int start, int end){ int len=end+start; int center=len/2; for(int i=start;i<center;i++){ swap(s[i],s[len-1-i]); } } void reverseWords(string

将字符串中单词经排序后输出

思路 先将字符串中的单词分割保存至二维数组中,再经排序后输出.水题,直接上代码了. 代码 /************************************************************************* > File Name: words_sort.c > Author: KrisChou > Mail:[email protected] > Created Time: Sun 24 Aug 2014 08:41:42 PM CST *****

输出一串字符串中单词个数

#include <stdio.h> #include <stdlib.h> /* 输入一行字符串(单词和若干空格), 输出该行单词个数. */ int main(){ char ch, str[100]; int count = 0; gets(str); for (int j = 0; str[j] != '\0';++ j) if ((str[j + 1] == '\0') && (str[j] != ' ')) //到达末尾且不为空格,单词数+1 count

统计字符串中单词的个数

1.单纯统计单词个数,单词与单词之间只考虑空格的情况 // word_statistic.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <string> using namespace std; #define M 10000 #define N 20 int _tmain(int argc, _TCHAR* argv[]) { char str1[M]={0};

【LeetCode在线编程记录-1】字符串按单词反转

写在前面 LeetCode(地址:https://oj.leetcode.com/)是一个在线编程网站,题目经典,测试用例完备,共计157道算法类的题目.之后我会记录我的一些练习题目,有些答案是我自己原创的(说是原创,也很可能是之前在别的地方看到的而已),有些是从讨论区看到的,我都会明确标注出处. Reverse Words in a String Given an input string, reverse the string word by word. For example, Given

用c语言实现 计算一个字符串中单词的个数

#include<stdio.h> int main() { char string[100]; int i , num=0 ,word=0; char c; gets(string);//从键盘得到一个字符串 for(i=0;(c=string[i])!='\0';i++)//字符不是'\0'就执行循环 { if(c==' ')//遇到空格word置0 { word=0; } else if(word==0)//未遇到空格且word为0则num加一且word置1 { word=1; num+