通过指针引用字符串
标签: C语言
学习人数: 12.1k

字符串的引用方式

在 C 语言中,可以用两种方法访问一个字符串。

 

1) 用字符数组存放一个字符串,然后输出该字符串。

【例】

#include <stdio.h>  
  
int main() {  
    char string[] = "Hello NoobDream!";  
    printf("%s\n", string);  
    return 0;  
}  

说明:和前面介绍的数组属性一样,string 是数组名,它代表字符数组的首地址。

 

2) 用字符串指针指向一个字符串。

【例】

#include <stdio.h>  
  
int main() {  
    char *string = "Hello NoobDream!";  
    printf("%s\n", string);  
    return 0;  
}  

字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。

如:

char c, *p = &c;  

表示 p 是一个指向字符变量 c 的指针变量。

而:

char *s = "C Language";  

则表示 s 是一个指向字符串的指针变量。把字符串的首地址赋予 s。

上例中,首先定义 string 是一个字符指针变量,然后把字符串的首地址赋予 string(应写出整个字符串,以便编译系统把该串装入连续的一块内存单元),并把首地址送入 string。

程序中的:

char *ps = "C Language";  

等效于:

char *ps;  
ps = "C Language";  

 

【例】输出字符串中 n 个字符后的所有字符。

#include <stdio.h>  
  
int main() {  
    char *ps = "this is a book";  
    int n = 10;  
    ps = ps + n;  
    printf("%s\n", ps);  
    return 0;  
}  

运行结果为:

book  

在程序中对 ps 初始化时,即把字符串首地址赋予 ps,当 ps= ps+10 之后,ps 指向字符“b”,因此输出为"book"。

 

【例】在输入的字符串中查找有无‘k’字符。

#include <stdio.h>  
  
int main() {  
    char st[20], *ps;  
    int i;  
    printf("input a string:\n");  
    ps = st;  
    scanf("%s", ps);  
    for(i = 0; ps[i] != '\0'; i++)  
        if(ps[i] == 'k'){  
            printf("there is ...
登录查看完整内容


课后作业

掌握本节内容


登录后开始许愿

暂无评论,来抢沙发