C和C++中字符串的问题
1.如何将char c[10]转化成string类型
2.在map <string,string>::iterator it;//假设已经有值了
char c[10]="aaa";
strcmp(it->second,c); //出错,提示不能将class类型转化成char*
strcmp(it->second.c_str(),c);//出错,提示不能将const char* 转化成char*
我该如何做才正确
1,char c[10];
string s(c);
或者string s; s.assign(c);
2,好像不能通过迭代器改变数据,只读的
1.string s(c);string s = c;都行
2.c_str()是只读的,strcmp不改变数据,你强转一下就行了,没有安全隐患
恩,谢了..
string s;
char A[10] = "123";
s.c_str(); 返回的是const char *类型的。当然不能用strcmp,
string 类 可以直接赋值。s=A;
要是想比较的话,直接写
if(s==A);就行 .或者 s.compare(A);
C/C++ code:
strcmp(const_cast<char *>(it->second.c_str()),c);
为什么不用string的 == ?
string A = "123";
if (it->second == A)
{
}
相关问答:
问一下:
#include <stdio.h>
int main()
{
char x, y, z;
int i;
int a[16];
for(i=0; i<=16; i++)
{
a[i] = 0;
......
#include "stdio.h"
int main()
{
char *ch(char *, char *);
char str1[]="I am glad to meet you!";
char str2[]="Welcom to study C!";
&nb ......
#include"stdio.h"
#include"stdlib.h"
void ContrTwo(char i)
{
char str1[8];
itoa(i,str1,2);
printf("%s",str1);
}
unsigned char leftRot(char str,int i);
unsign ......
#include "stdio.h"
void main()
{
int *p;
int a[10]={0,1,2,3,4,5,6,7,8,9};
int k=0;
p=a;
for(int i=0;i<10;i++,p ......