C语言 — 字符串和字符数组

ASCII值字符与int的关系

#include <stdio.h>

int main()
{
    char c = 'a';
    char d = 'b';
    printf("%d\n", c);
    int n = 110;
    printf("%c\n",(char)n);
    int x = c - n;
    printf("%d\n", x);
    printf("%d", c * d);
    return 0;
} 

字符数组

#include <stdio.h>

int main()
{
    char a1[] = {'C', '+', '+'};            // 列表初始化,没有空字符
    char a2[] = {'C', '+', '+', '\0'};      // 列表初始化,含有显示的空字符
    char a3[] = "C++";                      // 自动添加表示字符串结尾的空字符
//    char a4[6] = "Daniel";                  // 错误:没有空间可以存放空字符

    return 0;
}

字符数组的输入输出

#include <stdio.h>
#include <string.h>
int main()
{
    char str[100];
//  scanf("%s", str);
    fgets(str, 100, stdin);
    printf("%s", str);
}

字符串

字符串赋值

#include <iostream>
#include <string>
using namespace std;//string库在std名字空间中
int main()
{
    string s1;              // 默认初始化,s1是一个空字符串
    string s2 = s1;         // s2是s1的副本,注意s2只是与s1的值相同,并不指向同一段地址
    string s3 = "hiya";     // s3是该字符串字面值的副本
    string s4(10, 'c');     // s4的内容是 "cccccccccc"

    return 0;
}

字符串读写

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    string s1, s2;
    getline(cin, s1);
    getline(cin, s2);
//  scanf("%s%s",s1.c_str(), s2.c_str());
//    printf("%s\n%s", s1.c_str(), s2.c_str());
//  cin >> s1 >> s2;
    cout << s1 << '\n' << s2;
    return 0;
}

处理string对象中的字符

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s = "hello world";

    for (int i = 0; i < s.size(); i ++ )
        cout << s[i] << endl;

    return 0;
}

for each语句

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s = "hello world";

    for (char c: s) printf("%c", c);
    puts("");
    for (char& c: s) c = 'a';

    printf("%s", s.c_str());

    return 0;
}

字符串比较

支持 >, <, >=, <=, ==, !=等所有比较操作,按字典序进行比较。

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    string s1 = "abc";
    stirng s2 = "adc";
    if(s1 > s2) printf("YES");
    else printf("NO");
}

字符串相加

#include <iostream>
#include <string>

using namespace std;

int main()
{
	string s1 = "abc";
	string s2 = "bdf";
	string s3 = s1 + s2;
	string s4 = s1 + "," + "bdf";
//	string s5 = "abc" + "," + s2;//错误 
	printf("%s", s4.c_str());
	

    return 0;
}
上一篇
下一篇