易截截图软件、单文件、免安装、纯绿色、仅160KB

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不改变数据,你强转一下就行了,没有安全隐患

引用
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)
{
}


相关问答:

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

C 程序问题(四) - C/C++ / C语言

#include "stdio.h"
int main()
{
  char *ch(char *, char *);
  char str1[]="I am glad to meet you!";
  char str2[]="Welcom to study C!";
&nb ......

刚学C,用C实现编码 - C/C++ / C语言

#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 ......

请教一题C,我看不明白! - C/C++ / C语言

#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 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号