加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++给字符串赋值方式

(2012-02-27 07:30:30)
标签:

c

字符串赋值

综合实例

字符数组

字符串

分类: C
给字符序列赋值与从用户输入获取字符串综合例子
#include <iostream>
#include <string>
using namespace std;

void setstring (char szOut [ ], char szIn [ ])
{
        int n=0;
        do
        {
                szOut[n] = szIn[n];
        } while (szIn[n++] != '\0');
}

int main ()
{
        char szMyName_1 [20];
        strcpy_s (szMyName_1,"J. Soulie 1");
        cout << szMyName_1<<endl;

        char szMyName_2 [20];
        setstring (szMyName_2,"J. Soulie 2");
        cout << szMyName_2<<endl;

        char mybuffer [100];
        cout << "What's your name? ";
        cin.getline (mybuffer,100);
        cout << "Hello " << mybuffer << ".\n";

        char a[20];
        int i = 0;
        cout << "请输入长度不超过的字符串:"<<endl;
        gets_s(a); //从键盘获取字符输入
        //以下为逆序输出
        while(a[i] != '\0')
        {
                i++;
        }
        for (;i>=0;i--)
        {
                cout <<a[i-1];
        }
    cout <<endl;

        char b[20];
        cout << "请再输入长度不超过的字符串:"<<endl;
        cin >> b;
        cout <<b<<endl;

        return 0;

在上面的例子中我们使用了以下代码来读取用户输入:

cin >> b;

这种方法也可以工作,但它有以下局限性是cin.getline所没有的:

  • 它只能接收单独的词(而不能是完整的句子),因为这种方法以任何空白符为分隔符,包括空格spaces,跳跃符tabulators,换行符newlines和回车符arriage returns。
  • 它不能给buffer指定容量,这使得程序不稳定,如果用户输入超出数组长度,输入信息会被丢失。

因此,建议在需要用cin来输入字符串时,使用cin.getline来代替cin >>。

这里再简单列举一些最常用的:

  • strcat: char* strcat (char* dest, const char* src); //将字符串src 附加到字符串dest 的末尾,返回dest。
  • strcmp: int strcmp (const char* string1, const char* string2); //比较两个字符串string1 和string2。如果两个字符串相等,返回0。
  • strcpy: char* strcpy (char* dest, const char* src); //将字符串src 的内容拷贝给dest,返回dest 。
  • strlen: size_t strlen (const char* string); //返回字符串的长度。
  • cin.getline ( char buffer[], int length, char delimiter = ' \n');

    注意:char* 与char[] 相同

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有