c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...
指針可以指向一個(gè)字符串字面量,可以指向一個(gè)字符數(shù)組,可以指向一塊動(dòng)態(tài)分配的內(nèi)存單元:
char *s1, *s2, *s3 = “abcde”;
char ch[] = “fff”;
s1 = ch;
s2 = new char[10];
strcpy(s2, “fgh”);
用指針表示的字符串可以直接作為字符串操作函數(shù)的參數(shù)。但必須注意,如果該指針指向的是一個(gè)字符串常量時(shí),則使用是受限的。如不能作為strcpy的第一個(gè)參數(shù),不能用下標(biāo)的方法去修改其中的元素,所以一般都冠以const,如const char *s3 = “abcde”;
由于在C++中,數(shù)組名被解釋成指向數(shù)組首地址的指針。因此,字符串是用一個(gè)指針變量表示,我們可以把此指針變量解釋成數(shù)組的首地址,通過(guò)下標(biāo)訪問(wèn)字符串中的字符。如string[3]的值是d同時(shí),與上述直接指向一個(gè)常量不同,可以使用下標(biāo)的形式來(lái)修改字符數(shù)組的元素。
字符串作為字符數(shù)組傳遞時(shí)不需要指定長(zhǎng)度。因?yàn)樽址僮鞯慕Y(jié)束是依據(jù)‘0,如一個(gè)記錄串中單詞的個(gè)數(shù)的函數(shù):
#include Using namespace std;int word_cnt(const char *s){ int cnt = 0; while (*s != '0') { while (isspace(*s)) ++s; //跳過(guò)空白字符 if (*s != '0') { ++cnt; //找到一個(gè)單詞 while (!isspace(*s) && *s != '0') ++s; //跳過(guò)單詞 } } return cnt;}一個(gè)二級(jí)指針可以指向一個(gè)字符指針數(shù)組,如main()函數(shù)的參數(shù)就可以包含一個(gè)字符指針數(shù)組:
int main(int argc, char *argv[])如在命令行中執(zhí)行包括有字符指針數(shù)組的程序,可以在其中跟隨n個(gè)定義的字符串:
#include int main(int argc, char *argv[]){ int i; cout << "argc=“ << argc << endl; for(i=0; i假設(shè)生成的執(zhí)行文件myprogram.exe,
在命令行輸入:myprogram
輸出結(jié)果:
argc=1 argv[0]=myprogram在命令行輸入:myprogram try this
輸出結(jié)果:
argc=3 argv[0]=myprogramargv[1]=try argv[2]=this以下是一個(gè)二級(jí)指針,就是指針指向的指針才指向具體的非地址值:
#include using namespace std;int main(){ char *city[] = {"aaa總結(jié)
以上是生活随笔為你收集整理的c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 十代i7前端总线频率_Intel 10n
- 下一篇: adsl拨号无公网地址如何用ddns_【