zoukankan      html  css  js  c++  java
  • c语言

    写一个函数,将一个字符串中的单词反转过来,单词的定义是:完全由字母组成且由空格分开的字符串。例如下面的字符串:“a hello1 abc good!”,其中“a”和“abc”是单词,而“hello1”和“good!”不是单词(原因是这两个字符串中包含非字母的字符1和!)。反转过来的结果就是“a hello1 cba good!”
    要求:尽可能使用C/C++。禁止使用split、strlen等函数

        char str[100] = "a hello1 abc good!";
        int j = 0;
        int i = 0;
        for(; str[i]!='';i++){
            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||str[i]==' '){//是字母或空格
                if(str[i]==' '){
                    if(j!= -1){
                        for(int k = j;k<(i-1+j)/2;k++){ //反转单词
                            char t = str[k];
                            str[k] = str[i-1-(k-j)];
                            str[i-1-(k-j)] = t;
                        }
                    }
                    j = i+1;
                }
            }
            else{
                j = -1; //代表当前单词中包含非字母元素
            }
        }
        //处理最后一个单词
        if(j!= -1){
            for(int k = j;k<(i-1+j)/2;k++){ //反转单词
                char t = str[k];
                str[k] = str[i-1-(k-j)];
                str[i-1-(k-j)] = t;
            }
        }
    
  • 相关阅读:
    未解决的
    nodejs 7 和 8 的比较
    openresty Nginx
    Vim快捷键分类
    wireshark 包过滤
    RSA 公私钥 互换问题
    vim命令
    Windows 小端存储
    python 字符转换
    ssl证书验证
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/9789854.html
Copyright © 2011-2022 走看看