我想从不同字符串的前两个字符中创建一个字符串
所以我有:
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';
答案 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"
;