注册 登录
编程论坛 C++教室

用一重循环实现

Waiting159 发布于 2008-03-05 15:47, 796 次点击
给出一个字符数组:
char ch[] = {'a', 'b', 'c', '\0'};
如何产生如下输出:
abc
bc
c
注意:用一重循环。
5 回复
#2
lonmaor2008-03-05 17:07
实现方法可能有很多
程序代码:

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
    char ch[] = {'a', 'b', 'c', '\0'};
    char buffer[255];
    for (int i=0; i!=3; ++i)
    {
        strncpy(buffer,&ch[i],4-i);
        cout<<buffer<<endl;
    }
    system("pause");
    return 0;
}


[[it] 本帖最后由 lonmaor 于 2008-3-5 17:08 编辑 [/it]]
#3
flysky1022008-03-05 20:06
回复 2# 的帖子
strncpy(buffer,&ch[i],4-i);
我是新手,能告诉我这句是什么意思吗?谢谢了!
#4
sunkaidong2008-03-05 20:10
从ch[i]的位置开始复制4-i个字符给buffer
#5
Waiting1592008-03-06 10:16
另一种参考方案
程序代码:
#include <iostream>
using namespace std;
int main(){
    char *st = "abc";
    for(int i = 0; i < strlen(st); i++)
            cout << st + i << endl;
   
    getchar();
    return 0;
}
#6
aipb20072008-03-06 20:39
程序代码:
int main(){
    char *str = "anything";
    while (*str)
        cout << str++ << endl;
    return 0;
}
1