问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中如何借用指针输出字符串?

发布网友 发布时间:2022-04-23 05:28

我来回答

5个回答

热心网友 时间:2023-07-06 12:09

使用指针输出字符串有以下几种方式:

1、使用printf 函数进行输出,其使用的格式转换符为%s,如 

char *str = "test";//指针指向一个字符串

printf ("%s\n", str);//输出str指向的字符串

2、使用puts函数进行输出,如

char *str = "test";

puts(str);//输出str指向的字符串,会自动多输出一个换行

3、使用自定义函数进行输出,如

void myPuts(char *str)//自定义输出函数

{

if (!str)return ;

while (*str != '\0'){

putchar(*str);

str++;

}

char *str = "test";

myPuts(str);

扩展资料:

C++指针与字符串

1、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符数组

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char ar[]={'a','b','c','d'};

cout<<ar;   //字符串后无结束符\0,会有多余打印

cout<<endl;

char br[]={'a','b','c','d','\0'};

cout<<br;

cout<<endl;

char cr[5]="abcd";   //字符串结尾默认隐藏了\0

cout<<cr;

system("PAUSE");

}

2、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符指针

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char *p="hello world";

cout<<p;   

//整形的指针,打印指针时只能打印其内部地址

//字符指针,打印指针时也是地址,但是这个被看作字符指针后,会打印该指针指向地址内存放的字符串,打印直到遇到\0为止

system("PAUSE");

}

3、静态常量区的字符串存储及指针访问

#include<iostream>

using namespace std;

#include<stdlib.h>

#include<string.h>

void main()

{

char *p="hello world";   //hello world存放在内存的静态常量区

//指针变量p存储的是该静态常量区的首个字符地址

//不能通过指针修改静态常量区的字符,但是可以通过指针访问

int length=strlen(p);   

//strlen计算的是字符串p的有效长度,不算\0

for(int i=0;i<length;++i)

{

cout<<p[i];

}

system("PAUSE");

}

热心网友 时间:2023-07-06 12:10

1.*首先是一个算术运算符;

2. 定义一个指针,比方说下面的定义语句:

int a;

定义了一个变量a,其数据类型是int;

再看下面的定义语句:

int *b;

定义了一个int * 变量,怎样理解int*呢?可以这么来:

*b是int型的,它对应一个存储单元,里面可以存放int型数据,而这个单元的地址就存放在b中,此时b就是一个int *的数据. 于是,可以执行下面的操作

a=*b;

但是反过来这样操作就是错误的

b=a;

要用一个int型的变量给int *的变量赋值,则必须使用

b=&a;

讲到这,具有指针类型的形式参数的函数调用方法也就清楚了.

扩展资料:

*p=a的意思是将首元素的地址赋值给指针变量,在声明的时候完成了赋值。

由以上可以看出,p=&a[0],p=a,*p=a 三者的含义是一致的。

数组名a代表的就是数组地址,所以p=&a[0],p=a,二者是等价的。

声明时赋初值:

int *p=&a[0] 和 int *p=a是一致的。

通过指针引用数组元素时:a[1]=*(p+1)。

必须要注意的是:

a:数组首元素的地址(每个元素都是int类型)。

a+2:数组的第3个元素的地址。

* (a+2):数组的第3个元素的地址。

参考资料:百度百科-c语言字符串



热心网友 时间:2023-07-06 12:10

一、字符指针

1、字符指针输出字符串

为了更好的理解这部分内容,我们先看一个例子:

#include <stdio.h>int main()


{    char *ps ;


ps = "C language!";     /*定义字符指针*/


printf("%s\n", ps);  /*用字符指针PS来输出字符串的内容*/


return 0;

运行结果为: 

这个列子中,字符串“C language!”, 存储在连续的无名存储区中,通过语句ps = "C language!, 将无名储存区的首地址赋给指针ps,也就是说,指针变量ps 指向无名储存区域的首地址,而不是把无名储存区域的内容保存在ps中,

2、字符指针处理字符串

还是从具体的列子出发:

#include <stdio.h>

int main() 

{    

char *ps = "C language!";    

int n = 2;

ps = ps+2;      /*移动指针ps*/      

printf("%s\n", ps);    

return 0;   


}

运行结果: 

这里初始化的时候把首地址赋给了ps , 后面操作ps= ps+2时,ps指向l 所在的空间。

3、字符数组与字符指针处理字符串有何不同

占用空间不同。数组所占空间取决于数组的长度,而指针只占用4字节,用以存放字符串的首地址。

赋值方式不同指针本身是变量,所以可以这样char *ps; ps = "C language!"; 赋值, 而数组不能这样char A[20];A = "C language!;赋值,而要逐个赋值。

二、指针数组

注意不要写成int (*p)[3]; 这是上一篇说的指向数组的指针变量,表示长度为3的指向一维数组的指针变量。

1、指针数组比较适合于用来指向若干个字符串,是字符串处理更加灵活方便。

2、比如图书馆有若干本书,要将这些书名存在一个数组中,一般的方法用二维数组来存,就得定义该字符数组的列数为最长书名的长度,这样就非常浪费空间。

3、用指针数组则可以让指针数组中的各个元素,指向各字符串(书名),这样排序时,不必改动字符串的位置,而是改动指针数组中个元素的指向。

4、这样,各字符串的元素可以不同,而且移动指针变量的值(地址),就比移动字符串所花的时间少得多。

运行结果: 


这段算法,后面部分与一般的数组差不多,但其效率却比较高。

热心网友 时间:2023-07-06 12:11

可以直接用字符型指针指向一个字符串常量。

为了更好的理解这部分内容,我们先看一个例子:

#include <stdio.h>int main()


{    char *ps ;


ps = "C language!";     /*定义字符指针*/


printf("%s\n", ps);  /*用字符指针PS来输出字符串的内容*/ 


return 0;


}

运行结果为:

这个列子中,字符串“C language!”, 存储在连续的无名存储区中,通过语句ps = "C language!, 将无名储存区的首地址赋给指针ps,也就是说,指针变量ps 指向无名储存区域的首地址,而不是把无名储存区域的内容保存在ps中,

代码截图:

参考资料:百度百科-网页链接

扩展资料:

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。[1] 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。[2] 

在信息工程中指针是一个用来指示一个内存地址的计算机语言的变量或*处理器(CPU)中寄存器(Register)【用来指向该内存地址所对应的变量或数组】。指针一般出现在比较接近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的函数的值。

热心网友 时间:2023-07-06 12:11

举个例子,下图代码.

#include <stdio.h>

int main()
{    char *ps ;
ps = "C language!";     /*定义字符指针*/
printf("%s\n", ps);  /*用字符指针PS来输出字符串的内容*/
return 0;
}

输出为 "C language"

这个列子中,字符串“C language!”, 存储在连续的无名存储区中,通过语句ps = "C language!, 将无名储存区的首地址赋给指针ps,也就是说,指针变量ps 指向无名储存区域的首地址,而不是把无名储存区域的内容保存在ps中,

#include <stdio.h>

int main()
{    char *ps = "C language!";   

int n = 2;

ps = ps+2;      /*移动指针ps*/
printf("%s\n", ps);  

return 0;  
}

这段代码输出结果为 language  

这里初始化的时候把首地址赋给了ps , 后面操作ps= ps+2时,ps指向l 所在的空间。

c语言中如何借用指针输出字符串?

使用指针输出字符串有以下几种方式:1、使用printf 函数进行输出,其使用的格式转换符为%s,如 char *str = "test";//指针指向一个字符串 printf ("%s\n", str);//输出str指向的字符串 2、使用puts函数进行输出,如 char *str = "test";puts(str);//输出str指向的字符串,会自动多输出一...

急!!!请问在C语言中如何用指针实现一个字符串输入,然后把输入字符串倒...

puts(s);}

C语言,如何输出两个指针间的字符串

1 按字节输出。使用putchar从*p1一直输出到*p2。样例代码如下:while(p1&lt;p2){ putchar(*p1++);}2 将p2位置作为字符串结束点,临时赋值为0,并在输出后恢复。示例代码如下:char t = *p2;//临时变量*p2 = '\0'; //赋值结束符printf("%s",p1);//输出*p2 = t; //恢复3 开辟一段...

C语言,利用指针编写程序:把从键盘输入的字符串逆序存放并输出

程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符串逆序存放。最后输出逆序存放后的字符串。注意,字符串的长度可能为奇数或偶数,因此在for循环中应该只交换字符串长度除以2个字符即可。

C语言问题:调用printf函数通过指针p给打印字符数组c的语句是什么?

include&lt;stdio.h&gt; int main(){ char str[20]={"adfsdfwef\n"};char p;p=str;printf("%s",p);} 定义一个字符串指针*p 把str的首地址赋给p 然后输出p就可以了~!希望对你有帮助~!谢谢采纳

用C语言编程:使用指针变量实现将一个输入的字符串倒序输出,在每个字 ...

printf("输入字符串:\n"); scanf("%s",&amp;str); reversed(str); char *s; s = p; printf("逆序为:"); while(*s!='\0') { printf("%c,",*s); s++; }}void reversed(char *str){ int i,j=strlen(str); for(i=0;...

C语言用指针输出第几到第几个字符?

1. 可以 char s[] = "123456";char *p = s;int i;for(i = 4; i &lt;=6; i++) printf("%c", *(p+i - 1));2. 也可以 char s[] = "12345";char *p = s +1;int N=2;int i;for(i = 0; i &lt; N; i++) printf("%c", *(p + i));不用for循环,c语言默认没...

谁知道C语言指针怎么用?

1:计算机能存的只能是二进制数,所以不管你是地址还是字符,在计算机表示都是二进制数;2:在C中,数组的名字==地址,也就是说对 char a[10];会把10个字符存在内存,而你要找到这个字符串,需要字符串首字的地址,这个地址就是记录在 a中;3:你打印a的内容时,会用 printf("%s",a),而不是%s...

C语言如何在两个函数之间传送字符串

用指针,例如:include &lt;stdio.h&gt; include &lt;stdlib.h&gt; include &lt;string.h&gt; void abc(char *str){ strcpy(str,"string from abc\0");};void def(char *str){ printf("print in def: %s\n",str);};main(){ char str[30];abc(&amp;str[0]);def(&amp;str[0]);exit(0);} // abc()...

c语言,任意输入两个字符串,连接成一个字符串,并输出。用指针实现。

include &lt;stdio.h&gt; void main(){ char a[100],b[100],*p1,*p2; scanf("%s%s",a,b); p1=a; p2=b; while(*p1!=0) p1++; while(*p2!=0) *p1++=*p2++; *p1=0; printf("%s\n",a);} ...

c语言字符指针定义字符串 c语言指针输入字符串 c语言使用指针给字符串排序 c语言指针指向字符串 用指针逆序输出字符串 用指针输出字符串 c语言逆序输出字符串 字符串赋值给字符指针 c语言字符指针
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...宿管部的新生嘛,要去查宿舍,就要去查房签字嘛,有些宿舍的人就会说... 现在我住厂宿舍,宿管每天都要来查房,有时候甚至在睡觉的时候来,使 王燕小简介 宁夏医科大学基础医学院系部介绍 蜂蜜霉了可以直接涂在皮肤上吗 我买了一大瓶蜂蜜柚子茶但是放太久起霉了,很舍不得丢掉,它还有什么用... 昨天在家发现有很多蜂蜜生霉了~丢了又舍不得~可以做面膜吗?~~还有什么... 中山大学中山眼科中心预约就诊 中山大学中山眼科中心海南眼科医院基本资料 护理文职有什么岗位 梦到周围都是仙气是什么意思? c语言字符输出? 榛子仁酥的做法,榛子仁酥怎么做好吃,榛子仁酥 C语言中,如何以&quot;整数&quot;方式和&quot;字符&quot;方式输出字符? 睡觉总是梦见周围好像有蛇在动 梦见自己周围有好几只狼 华为手机怎样设置锁屏后的快捷手电筒? 怎么输出字符串 晚上梦见自己的周围都是蛇预示着什么? 梦见周围树一切都有雪 C语言怎么用printf输出字符串。 梦见周围全都是死人,这说明啥? 孩子很喜欢吃榛子,如何用榛子制作各种美食呢? C语言中,输出字符的格式是什么? hinova9锁屏电筒怎么关 做梦梦见周围的场景一直在转圈。这是怎么回事? 自己在家怎么炒榛子仁 榛子仁的做法大全 做梦梦见周围的楼房接二连三爆炸了是怎么回事? 华为mate30pro手电筒快捷键? 榛子怎么做好? 周公解梦之梦见周围三面是镜子 怎样输出字符 做梦梦到自己周围全是水! c+q中如何输出字符? 梦见周围环境改变大预示着什么? c语言中怎么输出字符串中的某个字符 怎样将榛子炒熟? 白天梦见周围都是大类 怎么用printf输出一个字符 c语言字符输出 c语言字符串怎么输出文字 C++怎么输出字符? C语言printf函数中,%C和%s都可以输出字符串? 怎么定义一个字符串,并输入,输出。 ps调色技巧:PS怎么快速给图片调色 c++怎么用cout输出字符串 用ps做完效果图怎么调色相平衡 ps的调色原理 处理图片时,怎样调出柔和的色彩? Ps的调色思路是怎么样的,是先调整对比度再提亮还是怎么样,这个有高人...