| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5123 人关注过本帖, 1 人收藏
标题:请问这个str1为什么输出不了?
只看楼主 加入收藏
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:0 
把它注释掉运行看看就知道干嘛用的。
以下是引用ke_liu在2020-3-14 11:39:21的发言:

请问一下"while(*p1)*p1++ = 0;"这句是干什么的?

2020-03-14 11:45
ke_liu
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:38
专家分:20
注 册:2020-1-24
收藏
得分:0 
在各位大佬的相助下,这个问题我解决了,只不过有一点小瑕疵(空格没有删除),我搜了一下那个删除空格的函数,结果看不懂,超出了我的范围,就先这样行了吧!
程序代码:
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    int m;
    string str,str1;
    int StringLength(string);
    void Partial_replication(string,int,string);
    cout<<"请输入一个字符串:"<<endl;
    cin>>str;
    cout<<"请输入被复制的部分字符串的起始字符在原字符串中的位置m(m<"<<StringLength(str)<<")";
    cin>>m;
    Partial_replication(str,m,str1);
    return 0;
}
void Partial_replication(string str,int m,string str1)
{
    int StringLength(string str);
    char *p=&str[0];
    int i=0;
    for(m=m-1;m;p++,m--)
    *p=0;
    str1=str;
    cout<<str1<<endl;
} 
int StringLength(string str)
{
    char *p;
    int i=0;
    for(p=&str[0];*p!='\0';p++)
    i++;
    return i;
}
2020-03-14 11:46
ke_liu
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:38
专家分:20
注 册:2020-1-24
收藏
得分:0 
以下是引用xianfajushi在2020-3-14 11:45:22的发言:

把它注释掉运行看看就知道干嘛用的。

ok,我试试
2020-03-14 11:47
ke_liu
Rank: 2
来 自:中国
等 级:论坛游民
帖 子:38
专家分:20
注 册:2020-1-24
收藏
得分:0 
以下是引用xianfajushi在2020-3-14 11:45:22的发言:

把它注释掉运行看看就知道干嘛用的。

注释掉之后,一些字符就会重复打印,明明只复制了一次,为什么会这样呢?
这个指针p,在for循环之后不是已经指向了str1的地址的后面了么,怎么while循环之后str1里重复的就没有了?
2020-03-14 12:06
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:0 
这就是传说中的太极
2020-03-14 13:55
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:0 
修改了2处,2次赋值。    string str1 = str;    while(*p1)*p1++ = 0;
以下是引用ke_liu在2020-3-14 12:06:43的发言:


注释掉之后,一些字符就会重复打印,明明只复制了一次,为什么会这样呢?
这个指针p,在for循环之后不是已经指向了str1的地址的后面了么,怎么while循环之后str1里重复的就没有了?

2020-03-14 16:58
快速回复:请问这个str1为什么输出不了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018973 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved