ccc9149
未知昵称
采纳率89.7%
2018-02-01 08:03

写一个c++程序,读出第三个斜杠后面的字符串

5
已采纳

写一个C++测程序,

判断读出第三个斜杠后面的read-data
if(读取一行字符串,判断第三个斜杠后面的字符串,输出这个斜杠后面的字符串)

例如
test01/test02/test03/test04 读出的字符串为test04

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

13条回答

  • qq_17550379 coordinate_blog 3年前
    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char *s = "test01/test02/test03/test04";
        char *a = strchr(s, '/');
        char *b = strchr(a+1, '/');
        char *c = strchr(b+1, '/');
        printf("%s\n", c+1);
        return 0;
    }
    
    点赞 评论 复制链接分享
  • KinoluKaslana KinoluKaslana 3年前
     int n = 0;
        char str[] = ;
        char *beg, *end = NULL;
        beg = strtok(str, "/");
        ++n;
        while (beg)
        {
            beg = strtok(NULL, "/");
            ++n;
            if (n == 3)
            {
                printf("%s", beg);
                return 0;
            }
        }
        printf("error");
        return 0;
    
    点赞 评论 复制链接分享
  • VisualEleven Eleven 3年前

    sscanf()~~

    点赞 评论 复制链接分享
  • u014013254 一天的sorrow 3年前

    //CArray arrroads;
    CStringArray road;

    CString temp="a|b|c|d|e";
    int s0=temp.ReverseFind('|');
    road.Add(temp.Mid(s0+1));

    while(s0>0)
    {
    temp=temp.Mid(0,s0);
    s0=temp.ReverseFind('|');
    road.Add(temp.Mid(s0+1));
    }
    int n=road.GetSize();
    for(int i=0;i
    {
    MessageBox(road.GetAt(i));
    }

    以后再代码中尝试一些新的类和新方法,这个自己的水平才能提高····

    点赞 评论 复制链接分享
  • tangzhen8 tangzhen8 3年前

    char*
    substr3_get(char *str)
    {
    int i = 0;
    while(0 != *str){
    if('/' == *str)
    i++;
    if(3 == i)
    break;
    str++;
    }

    if(3 != i)
        return NULL;
    else
        return str+1;
    

    }

    点赞 评论 复制链接分享
  • kongrenxin kongrenxin 3年前

    c语言版:

     # include <stdio.h>
    #include <string>
    
    int main()
    {
        char *s = "test01/test02/test03/test04";
        const char *p = s;
        int n = 3;
        int i = 0;
        while (i++ < n)
        {
            p = strchr(p, '/');
            if (!p)
                break;
            p++;
        }
        printf("read-data: %s\n",p);
        getchar();
        return 0;
    }
    
    点赞 评论 复制链接分享
  • qq_36683077 qq_36683077 3年前

    String str="test01/test02/test03/test04";
    String str1="";
    int i = 0;
    int j = 0;
    while(i < str.length){
    i++;
    if('/' == str[i]){
    j++;
    }
    if(j<3){
    continue;
    }
    str1+=str[i];
    }

    点赞 评论 复制链接分享
  • yufm IT-Warehouse 3年前

    需求是否描述完成准备?
    是第三个'/'还是最后一个'/',如果不弄清楚可能引起兼容性问题。

    点赞 评论 复制链接分享
  • observadores observadores 3年前

    #include
    #include
    #include
    using namespace std;

    int main()
    {
    int cout;
    char a[50];
    while(~scanf("%s",a))
    {
    cout = 0;
    for(int i = 0; i < strlen(a);i++)
    {
    if(a[i] == '/' || a[i] == '\')
    cout++;
    if(cout == 3)
    {
    printf("%s\n", a+i+1);//不知道你说的斜杠是哪种斜杠
    break;
    }
    }
    }
    return 0;
    }

    点赞 评论 复制链接分享
  • bless1108 二木兄弟 3年前

    import sys
    import os

    def test():
    testStr=test01/test02/test03/test04
    print testStr.split("/")[3]

    if name == '__main__':
    test()

    点赞 评论 复制链接分享
  • kongrenxin kongrenxin 3年前

    example:

    std::string s("test01/test02/test03/test04");
    std::string subs(s);
    int n = 3;
    int i = 0;
    while (i++ < n)
    {
    size_t pos = subs.find('/');
    if (pos == std::string::npos)
    {
    subs.clear();
    break;
    }

        subs = subs.substr(pos+1);
    }
    std::cout << "read-data: " << subs << std::endl;
    
    点赞 评论 复制链接分享
  • youke568 youke568 3年前

    while (true)
    {
    getchar(&c);
    if((c == 0xa0)|| (c == 'q'))
    break;
    if( (count if(count>2)
    str.append(c);
    }

    点赞 评论 复制链接分享
  • youke568 youke568 3年前

    while (true)
    {
    getchar(&c);
    if((c == 0xa0)|| (c == 'q'))
    break;
    if((count cout += 1;
    if(count>2)
    str.append(c);
    }

    点赞 评论 复制链接分享