2013-07-02 52 views
-4

我今天上午早些时候遇到了一个编程考试的问题。解析一个变量(PHP或C++)

因为它在这个变量命名strParse = A101619915589.2E76885B66182;

指示每个变量的下列内容分隔成自己的变量问题

strParse = A 10161991 5589.2 E 76885 B 66182; 

Code = A 
Date = 10161991 
variable1 = 5589.2 
Code2 = E 
variable2 = 76885 
Code3 = B 
variable3 = 66182 

那是相当多的文件要我做什么,但我真的不知道该怎么做。

+0

C++或PHP?选一个。他们完全不同的语言。 –

+0

而且值应该是一个字符串?是否应该如何将它分解为这些新的变量? – Barmar

+1

如果它的PHP和的preg_match)的简单的regex( – Robert

回答

2

在PHP中,你可以这样做:

$arr = explode(" ", $strparse); 

$code = $arr[0]; 
$date = $arr[1]; 
$variable1 = arr[2]; 
... and so on. 

在C++中,你可以使用示例strinstream

stringstream ss(strParse); 
string code, code2, code3 
string date; 
double variable1, variable2, variable3; 

ss >> code >> date >> variable1 >> code2 >> variable2 >> code3 >> variable3; 

这两种语言肯定有至少十几种其他方式,但这应该给你一个出发点。

+0

变量不包含空格。当时爆炸并不是一个好主意。 我想我明白你在C++代码中的含义。 – Tissue

+0

如果没有空格,那么如果长度未知,则必须使用'substr'和已知长度之类的东西,并使用while循环来确定元素的大小。它不是太复杂,但也不是完全微不足道。分离器更好! –

+0

是的。这个问题真的让我很头疼,没有互联网我就迷路了。非常感谢你的男人! – Tissue

1

的字符串将始终具有相同数目的字符?

代码将是AA的,而不是等?

编辑

(如果数字是标准磺酰基)您可以在PHP中使用此

Code = $strParse[0]; 
Date = substr($strParse, 1, 8); 
variable1 = substr($strParse, 10, 6); 
Code2 = substr($strParse, 16, 1); 
variable2 = substr($strParse, 17, 5); 
Code3 = substr($strParse, 22, 1); 
variable3 = substr($strParse, 23, 5); 
+0

这是一个问题,而不是答案。等到你得到代表40后,你可以发表评论。 – Barmar

+0

非常感谢。现在我明白了。 – Tissue

+1

我很高兴我帮你m8 :) – zPuls3