8.4.1 字符串的引用方式
在C程序中,字符串是存放在字符數(shù)組中的。想引用一個字符串,可以用以下兩種方法。
(1)用字符數(shù)組存放一個字符串,可以通過數(shù)組名和下標引用字符串中一個字符,也可以通過數(shù)組名和格式聲明“%s”輸出該字符串。
例:定義一個字符數(shù)組,在其中存放字符串“I love China!”,輸出該字符串和第8個字符。
#include<stdio.h>
int main(){
char string[]="I Love China!";
printf("%s\n",string);
printf("%c\n",string[7]);
return 0;
}
例:將字符串a(chǎn)復制為字符串b,然后輸出字符串b。
#include<stdio.h>
int main(){
char a[ ]="I am a student",b[20];
int i;
for(i=0;*(a+i)!='\0';i++)
*(b+i)=*(a+i);
*(b+i)='\0';
printf("string a is:%s\n",a);
printf("string b is:");
for(i=0;b[i]!='\0';i++)
printf("%c",b[i]);
printf("\n");
return 0;
}
例:用函數(shù)調(diào)用實現(xiàn)字符串的復制
#include<stdio.h>
int main(){
void copy_string(char from[],char to[]);
char a[]="I am a teacher.";
char b[]="you are a student.";
printf("string a=%s\nstring b=%s\n",a,b);
printf("\ncopy string a to string b:\n");
copy_string(a,b);
printf("string a=%s\nstring b=%s\n",a,b);
return 0;
}
void copy_string(char from[],char to[]){
int i=0;
while(from[i]!='\0'){
to[i]=from[i];i++;
}
to[i]='\0';
}
8.4.3 使用字符指針變量和字符數(shù)組的比較
字符數(shù)組和字符指針變量都能實現(xiàn)字符串的存儲和運算,二者之間區(qū)別有以下幾點。
(1)字符數(shù)組由若干個元素組成,每個元素中放一個字符,而字符指針變量中存放的是地址(字符串第1個字符的地址),絕不是將字符串放到字符指針變量中。
(2)賦值方式??梢詫ψ址羔樧兞抠x值,但不能對數(shù)組名賦值。
(3)初始化含義,對字符指針變量賦初值。
char *a="I love China!";等價于 char *a;a="I love China!";
(4)存儲單元的內(nèi)容。編譯時為字符數(shù)組分配若干存儲單元,以存放各元素的值,而對字符指針變量,只分配一個存儲單元。
(5)指針變量的值是可以改變的,而字符數(shù)組名代表一個固定的值(數(shù)組首元素的地址),不能改變。
例8.21:改變指針變量的值
#include<stdio.h>
int main(){
char *a="I love China!";
a=a+7; //改變指針變量的值,改變指針變量的指向
printf("%s\n",a); //輸出從a指向的字符開始的字符串
return 0;
}
(6)字符數(shù)組中各元素的值是可以改變的,但字符指針變量指向的字符串常量中的內(nèi)容是不可以被取代的。
(7)引用數(shù)組元素。文章來源:http://www.zghlxwxcb.cn/news/detail-667922.html
(8)用指針變量指向一個格式字符串,可以用它代替printf函數(shù)中的格式字符串。文章來源地址http://www.zghlxwxcb.cn/news/detail-667922.html
到了這里,關于8.4 【C語言】通過指針引用字符串的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!