当前位置: 首页 > 知识库问答 >
问题:

当反转字符串“my”时。名称是“我的输出为”is@.name.my'. 我不明白“@”是从哪里来的

越霖
2023-03-14

给定一个长度为S的字符串,反转整个字符串,而不反转其中的单个单词。单词用点隔开。

输入:第一行包含T,表示测试用例的数量。T测试用例紧随其后。每个案例都包含一个包含字符的字符串S。

输出:对于每个测试用例,在新行中输出一行,其中包含反向字符串。

约束:1

示例:输入:

i、 喜欢。这程序非常很

产量:很多。非常程序这喜欢我

#include <bits/stdc++.h>
using namespace std;


int main() {
    //code
    int t;cin>>t;
    while(t--) {
        string s;
        cin>>s;
        stack<string> st;
        int siz = s.size();
        char c[siz];
        for(int i =0;i<siz;i++) {
            c[i] = s[i];
        }
        char *token = strtok(c,".");
        while (token != NULL) 
        { 
            st.push(token);
            st.push("."); 
            token = strtok(NULL, "."); 
        }
        st.pop();
        while(!st.empty()) {
            cout<<st.top();
            st.pop();
        }
        cout<<"\n"; 

    }
    return 0;
}

共有2个答案

夏谦
2023-03-14
    char c[siz];
    c.push(0);
    for(int i =0;i<siz+1;i++) {
        c[i] = s[i];
    }

您可以在字符串末尾添加空字符,并将字符串大小增加1,以避免大小冲突错误。

牟飞沉
2023-03-14

当你这样做的时候

    char c[siz];
    for(int i =0;i<siz;i++) {
        c[i] = s[i];
    }

您不需要将一个0附加到c[]来标记字符串的结尾。

如果使用siz 1作为数组大小,并在末尾加一个零(空字符),则可以使用。

但仍然不应该使用VLA。

 类似资料:
  • 我在Linux中使用的Java版本是: OpenJDK版本“16.0.2”2021-07-20 OpenJDK运行时环境(构建16.0.2+7) OpenJDK 64位服务器VM(构建16.0.2+7,混合模式) 这是我从Head-First Java书中编译的代码: 为什么那个特殊字符(%)会出现在字符串的末尾,我如何编写代码来去掉它?

  • 我正在使用Akka HTTP作为REST支持,我需要在我正在开发的服务器的另一部分中使用Actors。我的理解是,通常需要在整个应用程序中使用一个ActorSystem实例。从akka.Http.scaladsl.Http.apply()的定义来看,当我使用Http方法时,就像下面的代码片段-- ---Http对象的apply()方法被提供了一个隐式ActorSystem实例...为了便于参考,h

  • 对不起,新手:/。所以当我在“输入你的年龄”中键入一封信时,我有这个问题 输入您的年龄:q 线程“main”java.util.InputMismatchException中出现异常 在java.util.scanner.throwfor(Scanner.java:909) 我想如果我打了任何一个字母,它显示“无效输入”。有人能帮我吗?[对不起,糟糕的英语]

  • 我使用Netty 4.1.16创建一个服务器。我建立一个管道: 在稍后的代码中,我将创建一个对传入消息的字符串响应,并尝试使用以下命令将其写入ChannelHandlerContext: ... 我的通灵之手是背景。writeAndFlush(字符串消息)失败,原因是 正如我所理解的文档和示例,WriteAndFlush应该向管道写入一个字符串,并且字符串编码器应该在将该字符串转发到套接字进行传输

  • 我知道这可能是非常基本的,也可能是非常直接的,但我无法清楚地理解在这种情况下会发生什么,所以,就这样吧。 在以下代码中: 我知道str1和str2将在字符串常量池中分别创建一个对象“Hello”和“World”。而对于str3,将在字符串常量池外部创建一个新对象,该对象指向在字符串常量池内部创建的“HelloWorld”。 我的问题是,如果我concat 2个或更多字符串(使用“”或concat(

  • 我是java新手,但我的理解是关键字出现在构造函数之前。然而,在来自Oracle的Java教程的这个示例中,情况并非如此。 卡是阶级,我不明白这一行是什么意思: 有人能解释一下这行代码是什么意思吗。