写一个C++测程序,
判断读出第三个斜杠后面的read-data
if(读取一行字符串,判断第三个斜杠后面的字符串,输出这个斜杠后面的字符串)
例如
test01/test02/test03/test04 读出的字符串为test04
#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;
}
while (true)
{
getchar(&c);
if((c == 0xa0)|| (c == 'q'))
break;
if((count cout += 1;
if(count>2)
str.append(c);
}
while (true)
{
getchar(&c);
if((c == 0xa0)|| (c == 'q'))
break;
if( (count if(count>2)
str.append(c);
}
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;
import sys
import os
def test():
testStr=test01/test02/test03/test04
print testStr.split("/")[3]
if name == '__main__':
test()
#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;
}
需求是否描述完成准备?
是第三个'/'还是最后一个'/',如果不弄清楚可能引起兼容性问题。
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];
}
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;
}
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;
}
//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));
}
以后再代码中尝试一些新的类和新方法,这个自己的水平才能提高····
sscanf()~~
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;