| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 463 人关注过本帖
标题:添加串类问题
只看楼主 加入收藏
醉了浮生
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2011-6-2
收藏
 问题点数:0 回复次数:0 
添加串类问题
/*编制一个程序,将字符串string2的后n个字符添加到字符串string1的末尾,并以'\0'结束。
具体要求:
(1)、字符串string1,string2,添加字符个数n皆由键盘输入。
(2)、字符串采用顺序存储结构,定义如下:
typedef struct sqstring
{ char data[MaxSize];
int length;
}SqString;
(3)、要求程序运行结果正确,键盘输入n值需讨论其的合法性,输出结果的提示信息描述完备、清晰。
思考:
(1)、能否采用字符指针的形式存储字符串?为什么?
(2)、如果要求将字符串string2的头n个字符添加到字符串string1的末尾,程序做何修改?
*/

#include <iostream>
using namespace std;

#define MaxSize 100

typedef struct sqstring
{
    char data[MaxSize];
    int length;
}SqString;

void StrAssign(SqString &s, char cstr[], int n)
{
    int i;
    for(i = 0; i < n; i++)
        s.data[i] = cstr[i];
    s.length = n;
}

void DispString(SqString s)
{
    int i;
    if(s.length > 0)
    {
        for(i = 0; i < s.length; i++)
            cout<<s.data[i];
        cout<<endl;
    }
}

int StrLength(SqString s)
{
    return s.length;
}

void StrAdd(SqString &s, SqString t, int n)
{
    int i, p;
    do
    {
        cout<<"输入错误,请重新输入!"<<endl;
        cin>>n;
    }while(n<0||n>t.length);
        p = s.length;
        for(i = 0; i < n; i++)
        {
            s.length++;
            s.data[p + i] = t.data[t.length - n + i];        
        }   
}

void main()
{
    int  p, q, i, j, s;
    char a[100], b[100];
    SqString string1, string2;
    cout << "请输入字符串string1的长度p = ";
    cin>>p;
    for(i = 0; i < p; i++)
    {
        cin>>a[i];
    }
    StrAssign(string1, a, p);
    cout<<"串string1为:";
    DispString(string1);
    cout << "请输入字符串string2的长度q = ";
    cin>>q;
    for(j = 0; j < q; j++)
    {
        cin>>b[j];
    }
    StrAssign(string2, b, q);
    cout<<"串string2为:";
    DispString(string2);
    cout<<"将字符串string2的后s个字符添加到字符串string1的末尾,请输入s = ";//为什么此处无论输入什么,输出结果都是输入错误
    cin>>s;
    StrAdd(string1, string2, s);
    DispString(string1);
}
//呜呜,求指点
搜索更多相关主题的帖子: 键盘 提示信息 合法性 字符串 
2011-11-11 16:59
快速回复:添加串类问题
数据加载中...
 
   



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

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