I have string like this 6.28:12.56:-1:1, 4 double values separated by : and I need to get each double constant and each insert into different variable. What is the easiest way to do this? Thanks.

有帮助吗?

解决方案

You would usually use strtok for this (strtok_r if you use threads or may have otherwise overlapping parsing sequences).

其他提示

From http://www.dotnetperls.com/split:

String.Split() separates strings. Often strings have delimiter characters in their data. Delimiters include "\r\n" newline sequences and the comma and tab characters. Split handles splitting upon string and character delimiters.

string s = "6.28:12.56:-1:1";
    //
    // Split string on ':'.
    // ...
    //
    string[] words = s.Split(':');

    for(int i=0;i < words.length;i++)
{
    string word1=words[0];
        string word2=words[1];
        string word3=words[2];
        string word4=words[3];
}

For ANSI C

use sscanf

char st[] = "6.28:12.56:-1:1";
double word1, word2, word3, word4;

int rc = sscanf(st, "%lf:%lf:%lf:%lf", &word1, &word2, &word3, &word4);

/* Check that rc is 4 for success */

*sscanf function returns the number of items succesfully read

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top