我想用另一个字符串的前两个字符组成一个字符串
所以我有:
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';
4条答案
按热度按时间rdlzhqv91#
考虑到你在问题中提供的内容,以及对你的意思的理解,我只能假设argv是一个二维数组,要么是int,要么是char。
你希望c是12岁。
从这里你可以把它转换成一个数字,如果你需要它作为12。
w8ntj3qf2#
下面是我使用的方法:
5fjcxozz3#
因为源字符串可能很小,比如
"x"
,或者理论上是""
,所以只需打印一个大小限制:amrnrhlw4#
你用的是哪个编译器?我用gnu试过你的代码,用substr也能很好地工作。下面的代码也能工作,你可以试着改变构造函数。