C语言字符串 小记
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{char str1[] = "12345"; // ""括起來的字符串 會(huì)在末尾增加 \0 cout << sizeof(str1) << endl; // 6char str2[] = {'1', '2', '3'}; // 這種賦值方式不會(huì)在末尾增加 \0cout << sizeof(str2) << endl; // 3//cout << str2 << endl; // 因?yàn)闆]有 C語言字符串結(jié)束標(biāo)志所以 會(huì)多輸出很多垃圾字符// 而且還影響手續(xù)代碼的執(zhí)行cout << strlen(str2) << endl; // 17 數(shù)字不確定 因?yàn)闆]有結(jié)束標(biāo)志 \0cout << strlen(str1) << endl; // 5 長(zhǎng)度不包括 結(jié)束標(biāo)志char str3[] = { '1', '2', '3', '\0' }; // 手動(dòng)加上結(jié)束標(biāo)志cout << strlen(str3) << endl; // 3 長(zhǎng)度不包括 結(jié)束標(biāo)志cout << "-----------" << endl;char str4[100] = "The URL is ";char str5[50] = "12345";cout << sizeof(str4) << endl; // 100 占用的字節(jié)數(shù)cout << strlen(str4) << endl; // 11 字符串實(shí)際的長(zhǎng)度cout << str4 << "end?" << endl; // The URL is end?cout << "C 語言字符串拼接函數(shù) strcate_s" << endl;//strcat_s() 將把 arrayName2 連接到 arrayName1 后面,并刪除原來 arrayName1 最后的結(jié)束標(biāo)志'\0'。這意味著,arrayName1 必須足夠長(zhǎng),要能夠同時(shí)容納 arrayName1 和 arrayName2,否則會(huì)越界(超出范圍)。// strcat_s() 的返回值為 arrayName1 的地址。strcat_s(str4, str5);cout << str4 << endl;cout << "---------char *--------------" << endl;char *str6 = "12345678";char *str7 = "abcdefg";cout << sizeof(str6) << endl; // 4 這樣只返回一個(gè)指針占用的 字節(jié)數(shù)cout << strlen(str6) << endl; // 8 返回字符串的長(zhǎng)度 cout << str6[8] << endl; // 這里應(yīng)該是字符串結(jié)束標(biāo)志 \0// strcat_s 不能作用于 char * 類型的// strcpy_s 也不能作用域 strcpy_s;cout << str6 << endl;cout << "----C 語言字符串復(fù)制函數(shù) strcpy_s------" << endl;char str8[50] = "abcdefg";char str9[50] = "wocawocawoca";strcpy_s(str8, str9);cout << str8 << endl; //wocawocawoca//strcpy_s(arrayName1, arrayName2); 會(huì)把 arrayName2 中的字符串拷貝到 arrayName1 中,字符串結(jié)束標(biāo)志'\0'也一同拷貝。strcpy() 要求 arrayName1 要有足夠的長(zhǎng)度,否則不能全部裝入所拷貝的字符串。return 0;
}
總結(jié)
- 上一篇: 如何直接引用django中的orm?
- 下一篇: 输卵管有问题有什么症状