char szNameString={"aa ss dd ff"};
char *szName[3]={0};
我要把第一行里面的字符串拷贝到第二行的数组里面,最后结果是
szName[0]={"aa"};
szName[1]={"ss"};
szName[2]={"dd"};
szName[3]={"ff"};
就是忽略其中的空格,把其他的字符串放到另外一个数组里面,怎么办?
char *szName[3]={0};
我要把第一行里面的字符串拷贝到第二行的数组里面,最后结果是
szName[0]={"aa"};
szName[1]={"ss"};
szName[2]={"dd"};
szName[3]={"ff"};
就是忽略其中的空格,把其他的字符串放到另外一个数组里面,怎么办?
解决方案 »
- 刷新闪烁的问题
- 对话框上画图线条错位的问题
- 江湖救急,求《矢量图形系统开发与编程》电子书或源码。急!急!急!救!救!救
- 谁遇到过 C4819 问题?
- 怎样定制自己的鼠标图像,各位大侠帮帮忙,急!!!!
- 如何在程序中动态将SQL数据表导出到*.txt或*.cls文件中?急!!!
- 关于文件操作问题,菜鸟问题
- 谁有工资管理系统的源代码?用VC++做的,发到[email protected]好吗???高分!!
- 用SOCKET通信时一般什么时候用长连接,什么时候用短连接
- 请问如何发表软件?
- 关于MFC的一个BUG,没发现能修正的人!看大家有没有什么头绪?是关于CFileDialog的,代码请进来看。谁能解决此问题,100分相送!!
- 请教一个sdk对话框问题
char szNameString={"aa ss dd ff"};//这个我看不懂,第一次看到这种写法2 自己写个算法步骤:
遍历szNmaeString 把空格去掉,去掉的同时记录空格位置,放在数组中
然后读szNmaeString中的字符(现在没有空格了),读取字符,和数组的位置比较就行了
szName[0]={"aa"}; --》szName[0]="aa";
szName[1]={"ss"};
szName[2]={"dd"};
szName[3]={"ff"};
char *szNameString="aa ss dd ff";
char *szName;int len=strlen(szNameString);
szName=(char*)calloc( len, sizeof(char));
char m_c=0x00;
int start=0;
int index=0;for (int i=0;i<len;i++)
{
m_c=*(szNameString+i);
if (m_c==0x20)
{
strncpy(szName+index,szNameString+start,i-start);
index++;
start=i+1;
}
}
#include <stdio.h>
#include <string.h>
void main()
{
char szNameString[]={"aa ss dd ff"};
char *szName[4]={0};
char *token;
int i;
i=0;
// 以下,szName只是指向原szNameString,没有拷贝
//如果用拷贝,只要先申请内存,然后用strcpy
token = strtok( szNameString, " " );
while( token != NULL )
{
szName[i++]=token ;
token = strtok( NULL, " ");
}
//输出
for(i=0;i<4;i++)
printf("szName[%d]=%s\n" ,i ,szName[i]);
}
谢谢keiy()
char a1[4],a2[4],a3[4],a4[4];
sscanf(s,"%[^ ] %[^ ] %[^ ] %[^ ]",a1,a2,a3,a4);
AfxMessageBox(a4);
char *szName[3]={0};memset(szName,'\0',3);
strncpy(szNameString,szName,2); //szName is "aa"
memset(szName,'\0',3);
strncpy(szNameString+3,szName,2); //szName is "ss"
memset(szName,'\0',3);
strncpy(szNameString,szName+6,2); //szName is "dd"
另外一个问题:szName只有三个,而你却用了4个
可以这样做
char szName[4][_MAXPATH];_stscanf(szNameString, _T("%s %s %s %s"), szName[0], szName[1], szName[2], szName[3]);