从字符串中只获得前2个字符

时间:2015-08-08 04:55:09

标签: c string

我想从不同字符串的前两个字符中创建一个字符串

所以我有:

int main(int argc, string argv[])
{
    string s = argv[1];
    string key = // here is where I dont know how to get the first 2 chars.
    printf("%s\n", key);
} 

如果argv[1]是:1220kjs,我需要字符串“key”为12,argv [1]可以是数字或字符。因此,如果输入argv [1]为jths528as,我需要字符串“key”为“jt”。

我尝试了各种方法,但无法编译。 s.Substring(0,2)给我错误:成员引用基类型'string'又名'char *')不是结构或联合

我找到了解决方案:

string t = argv[1];
char key[3];
strncpy(key, t, 2);
key[2] = '\0';

3 个答案:

答案 0 :(得分:0)

鉴于您在问题中提供的内容以及解释您的意思,我只能假设argv是int或char的二维数组。

string a = argv[1][0]; // so this has 1
string b = argv[1][1]; // this has 2 in it

你希望c为12。

    int[,] t = new int[2, 6] {{1,2,3,4,5,6},
                              {1,2,2,0,8,5}};

    string a = Convert.ToString(t[1,0]);
    string b = Convert.ToString(t[1,1]);

    string c = a+b; // "12"

从这里你可以将它转换成一个数字,如果你需要它12。

答案 1 :(得分:0)

以下是我使用的方法:

string key = argv[1];

char c[3] = {key[0], key[1], '\0'};

string s = c;

printf("string: %s\n", s);

答案 2 :(得分:-1)

嗯,您指出argv[1]设置为122085,但这是一个数值,而不是字符串值,因此您必须将其转换为字符串才能开始。例如:

string arg = argv[1].ToString();

现在您可以轻松地执行子字符串操作:

string result = arg.Substring(0,2);

所以,总而言之,你可能会有以下几点:

string result = argv[1].ToString().Substring(0,2);

将输出字符串值"12";