开元食味
德国频道
查看: 1659|回复: 3
打印 上一主题 下一主题

[求助]一道关于指针的编程

[复制链接]
1#
发表于 17.4.2004 21:47:54 | 只看该作者
原题是这样的<br>  <span style='font-size:14pt;line-height:100%'><span style='font-family:Arial'>Schreiben Sie eine Funktion ausschnitt,die aus einer Zeichenkette einen Teilstring extrahiert und den ausgeschnittenen Teil in eine zweite Zeichenkette kopiert.Der Ausschnitt wird durch Angabe des ersten zu kopierenden Zeichens und der Anzahl der ab diesem(und insklusive dieses)zeichen(s) zu kopierenden definiert.</span></span><br><br>大概是这样的<br>    编辑一道程序,ausschnitt(string1,Teilsting2,c,n).在字符串string1中从某个字母C(该字母为第一次出现)开始剪切,直到此字母位置后的第n个字符字母为止,然后将这个剪切下来的字符串Teilsting2复制到另一个字符串中.<br><br>比如  ausschnitt(&quot;abcdefc&quot;,Teilsting2,`c&acute;,3)<br>  <br>剪切下来的结果就是 cde<br><br>诶 <!--emo&:huh:--><img src='http://www.kaiyuan.org/modules/ipboard/html/emoticons/huh.gif' border='0' style='vertical-align:middle' alt='huh.gif' /><!--endemo-->  不会不会 但星期4就要交了 ,希望高人指点.救我一命 <!--emo&:^:--><img src='http://www.kaiyuan.org/modules/ipboard/html/emoticons/cry_smile.gif' border='0' style='vertical-align:middle' alt='cry_smile.gif' /><!--endemo--> <br><br>         
2#
发表于 18.4.2004 00:16:32 | 只看该作者
这也太简单了吧 <!--emo&:angry:--><img src='http://www.kaiyuan.org/modules/ipboard/html/emoticons/mad.gif' border='0' style='vertical-align:middle' alt='mad.gif' /><!--endemo-->  
3#
发表于 18.4.2004 10:35:51 | 只看该作者
注意几点:判断n是否比要截的字符串长,这也可以是相对c而言;不要直接在string1上切;申请的临时变量要回收(这里仅对字符串指针)。另外这个函数应该有个返回值。<br>总之写出来不是很难,但要仔细一点为好。
4#
匿名  发表于 19.4.2004 08:27:41
<br>#include &lt;cstring&gt;<br>#include &lt;cstdio&gt;<br>#include &lt;iostream&gt;<br>using namespace std;<br>bool ausschnitt(const char* source, char* ziel,char zeichen,size_t len){<br>   char*   tmp=strchr( source, zeichen );<br>   if(&#33;tmp) <br>   {<br>      printf(&quot;No Char exist&quot;);<br>      return false;<br>   }<br>   if (strlen(tmp)&lt;len) <br>   {<br>      printf(&quot;len too small\n&quot;);<br>      return false;<br>   }<br>   if (&#33;strncpy( ziel, tmp, len ))<br>      return true;<br><br>}<br>int main(void)<br>{<br>   char*  source=&quot;I love c/c++, I love Linux,too&quot;;<br>   char zeichen=&#39;o&#39;;<br>   size_t len=12;<br>   char ziel[128];<br>   printf(&quot;Source: %s\nChar:%c\nLen:%d\n&quot;, source,zeichen,len);<br>   if (ausschnitt(source, ziel,zeichen,len))<br>   {<br><br>      for (size_t i=0;i&lt;len;i++)<br>         printf(&quot;%c&quot;,ziel);<br>      printf(&quot;\n&quot;);<br>   }<br>  <br>      else <br>      printf(&quot;Len too small\n&quot;);<br>     <br>    <br>   return 1;<br>}<br><br><br>//gcc version 3.2<br><br><br>//g++ -o ausschnitt -W -Wall ausschnitt.cxx && ausschnitt<br><br>//output<br>//<br>//Source: I love c/c++, I love Linux,too<br>//Char<br>//Len:12<br>//ove c/c++, I<br><br><br>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点信息

站点统计| 举报| Archiver| 手机版| 小黑屋

Powered by Discuz! X3.2 © 2001-2014 Comsenz Inc.

GMT+1, 11.11.2024 19:46

关于我们|Apps

() 开元网

快速回复 返回顶部 返回列表