⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_66527.htm

📁 vc
💻 HTM
字号:
<p>
序号:66527 发表者:xiaogang_2000 发表日期:2003-12-25 09:16:35
<br>主题:怎样对字符串进行如下操作?
<br>内容:<BR>有这样一个字符串:<BR>CString str=&#34;a_bcd,a234h,aDFJ+K23,...&#34;;(长度不定!)<BR>希望将其分解为:<BR>CString str1=&#34;a_bcd&#34;;<BR>CString str2=&#34;a234h&#34;;<BR>CString str3=&#34;aDFJ+K23&#34;;<BR>CString str4=&#34;....&#34;;<BR>...&nbsp;&nbsp;(以后可能还有多项)<BR>不知程序该如何写?请大家帮忙看看,多多指点。谢谢<BR>mc_77@sina.com<BR>QQ:56700320
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:福尔默斯 回复日期:2003-12-25 09:23:56
<br>内容:strcat(str1,str2)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:yanzheng 回复日期:2003-12-25 09:43:01
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString LinkDB=&#34;'192.168.0.1';'sa';'ati1234','rams1bj..&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString stir,stiru,strServerName,strLogin,strPassWord,strDataBase;<BR>&nbsp;&nbsp;&nbsp;&nbsp;strServerName=LinkDB.Mid(1,LinkDB.Find(';')-2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;stiru=strServerName;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LinkDB.Delete(0,LinkDB.Find(';')+2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strLogin=LinkDB.Mid(0,LinkDB.Find(';')-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LinkDB.Delete(0,LinkDB.Find(';')+2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strPassWord=LinkDB.Mid(0,LinkDB.Find(',')-1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;LinkDB.Delete(0,LinkDB.Find(',')+2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strDataBase=LinkDB.Mid(0,LinkDB.Find('.'));<BR>&nbsp;&nbsp;&nbsp;&nbsp;stiru=strServerName+strDataBase+strLogin+strPassWord;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-12-25 10:27:04
<br>内容:你的要求没办法得到,因为c 语言无法自动申请n个变量(n不确定),如果用字符串数组倒是可以实现<BR>CString str[20];
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:yanzheng 回复日期:2003-12-25 10:50:09
<br>内容:用动态数组就行<BR>typedef CArray&lt;CString,CString&amp;&gt; CRectArray;<BR>&nbsp;&nbsp;CRectArray m_Array;<BR>&nbsp;&nbsp;m_Array.SetSize(0);<BR>&nbsp;&nbsp;m_Array.SetSize(m_Array.GetSize()+1);<BR>&nbsp;&nbsp;m_Array[m_Array.GetSize()-1]=str;<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiaogang_2000 回复日期:2003-12-26 10:17:58
<br>内容:还有更好的办法吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐相华 回复日期:2003-12-26 13:25:06
<br>内容:动态数组是最好的方法。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiaogang_2000 回复日期:2003-12-26 16:47:49
<br>内容:回yanzheng :<BR>  你的用动态数组的方法好像是将各个短字符串存入数组中。我希望的是如何将它们分开。(不知我理解的对不对)<BR>  你能给我写个小例子吗?谢谢你
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:alang 回复日期:2003-12-26 17:24:55
<br>内容:void CCTestCStringDlgDlg::OnOK() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add extra validation here<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString str=&#34;123,4567,89abcd&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString str2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;str2 = GetItemCString( 0, str );<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox( str2 );&nbsp;&nbsp;&nbsp;&nbsp;//&#34;123&#34;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;str2 = GetItemCString( 2, str );<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox( str2 );&nbsp;&nbsp;&nbsp;&nbsp;//&#34;89abcd&#34;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;str2 = GetItemCString( 6, str );//超越范围<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox( str2 );&nbsp;&nbsp;&nbsp;&nbsp;//&#34;NULL&#34;<BR><BR>//&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnOK();<BR>}<BR><BR>////// nItem 为你想提取的位置<BR>CString CCTestCStringDlgDlg::GetItemCString(int nItem, const CString&amp; strString)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int iStart = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int nNum = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int nLen = strString.GetLength();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for( ;; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const int iComma = strString.Find( _T(','), iStart );<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( iComma == -1 )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( nItem == nNum++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return strString.Mid( iStart, iComma - iStart );<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iStart = iComma + 1;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if( nItem == nNum ) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return strString.Mid( iStart, nLen );<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#34;NULL&#34;;//nItem超出范围就返回&#34;NULL&#34;<BR>}<BR>这个也许对你有用!!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:hwj 回复日期:2003-12-26 17:50:29
<br>内容:用strtok函数是,下面是例子:<BR>#include &lt;string.h&gt;<BR>#include &lt;stdio.h&gt;<BR><BR>char string[] = &#34;A string\tof ,,tokens\nand some&nbsp;&nbsp;more tokens&#34;;<BR>char seps[]&nbsp;&nbsp; = &#34; ,\t\n&#34;;<BR>char *token;<BR><BR>void main( void )<BR>{<BR>&nbsp;&nbsp; printf( &#34;%s\n\nTokens:\n&#34;, string );<BR>&nbsp;&nbsp; /* Establish string and get the first token: */<BR>&nbsp;&nbsp; token = strtok( string, seps );<BR>&nbsp;&nbsp; while( token != NULL )<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* While there are tokens in &#34;string&#34; */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf( &#34; %s\n&#34;, token );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Get next token: */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token = strtok( NULL, seps );<BR>&nbsp;&nbsp; }<BR>}<BR><BR><BR>Output<BR><BR>A string&nbsp;&nbsp; of ,,tokens<BR>and some&nbsp;&nbsp;more tokens<BR><BR>Tokens:<BR> A<BR> string<BR> of<BR> tokens<BR> and<BR> some<BR> more<BR> tokens<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hwj 回复日期:2003-12-26 17:59:04
<br>内容:补充说明一下strtok函数的好处,strtok可以自己指定分隔符(不管是,空格或其他),代码也比较简洁,具体可以参考MSDN上的说明
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiaogang_2000 回复日期:2003-12-27 23:22:38
<br>内容:感谢大家的帮忙!<BR>大家说的办法我都试过了,都是对的。我用的是hwj的办法,我将分给了他
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -