#include<stdio.h> int main() { char str[20]; char*p=str; printf("input string:\n"); scanf("%s",p);

刚学c语言谁能告诉我,为什吗第二个和第四个printf中的(P)不带*这个符号,p不是个指针地址吗???谢谢详细点啊感激不尽!!!!!

char *p=str//是指定义一个字符指针,然后指向str[20]数组的首地址,它可以表示成
//char *p;p=str;
而scanf函数需要的是存放字符串的首地址,当然就用指针p就好了啊
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-19
因为p是指针,也就是地址,而scanf函数的第二个参数就是一个地址,所以p不加*
第2个回答  2011-04-19
Scanf语句内部的p所表示的是%s的参数,参数不能变为p变量
第3个回答  2011-04-20
r,int m,int n)
{
int count=1;
int i=0;
char str1[10];
for(i=0;i<=strlen(str);i++)
{
if(count<m)
{
str1[i]=str[i];
count++;
}
}
}

在c语言中,输入“12345678”后如何把“3456”用“*”输出?
```c include <stdio.h> include <string.h> int main() { char str[20]; \/\/ 定义字符数组存储输入的字符串 printf("请输入一个包含数字的字符串:");scanf("%s", str); \/\/ 读入字符串 char *p = strstr(str, "3456"); \/\/ 使用字符串处理函数strstr()查找子串"3456"if (p !

C语言 输入字符串,将字符串中的数字存入整型数组中
include<string.h> int main(){ char str[20];int i,j;int b[20];printf("这里输入字符串\\n");scanf("%s",str);for(i=0,j=0;i<strlen(str);i++,j++){ if((str[i]>'0')&&(str[i]<'9')){ b[j]=(int)str[i]-48;printf("%d",b[j]);} else j--;} return 0;...

编写一个程序,将大写字母A转换为小写字母a
include "string.h"#include "std io.h"main(){ char str[20],*p;printf("please input strings:\\n");gets(str);p=str;while(*p!='\\0'){if(*p>='a' && *P <='z')*p= *p - 3...\/\/ 转化为小写$str = "Mary Had A Little Lamb and She LOVED It So";$str = strtolower(...

怎么编写一个程序,将大写字母A转换为小写字母a?
include "string.h"#include "std io.h"main(){ char str[20],*p;printf("please input strings:\\n");gets(str);p=str;while(*p!='\\0'){if(*p>='a' && *P <='z')*p= *p - 3...\/\/ 转化为小写$str = "Mary Had A Little Lamb and She LOVED It So";$str = strtolower(...

用C语言编写程序:从键盘输入一串字符,按回车键后结束,最后将字符串在屏...
include<stdio.h> void main(){ char *p[20];printf("\\n Please input some chars:");scanf("%s",p);printf("\\n You inputed: %s\\n",p);getchar();} 注意,该程序最多可输入20个字符,如果要更多,自己把*p[20];里的数字改得列大就行了 ...

请用指针的方法,编写一个函数实现把给定字符串逆序
include <stdio.h> include <string.h> int main(){ int i,pos;char t;char str[20] = {"abcde"};char *p = str;pos = strlen(str);for(i = 0; i < pos\/2; i++){ t = *(p+i);(p+i) = *(p+(pos-1-i));(p+(pos-1-i))=t;} fputs(str,stdout);printf("\\n...

C语言中char str[20], *p=str; scanf(“%s”,p[2]);是正确的吗?谢谢...
恭喜您,这是正确的。还可以使用以下方法:1.p[2]2.p+2 3.*(p+2)4.&str[2]5.str[2]6.str+2 因为这是字符串数组可以这样写,如果是数字数组,就是:p+2;p[2],&str[2]

编写程序,输入字符串,依次将字符串中的字母或数字进行转换,比如,输入...
include <stdio.h> include <string.h> char str[20];char fun(char *c);int main() { char *p=str;gets(str);while(*p) { p = fun(p);putchar(*p);p++;} putchar('\\n');return 0;} char fun(char *c) { if((*c<='9'&&*c>='0')||(*c<='z'&&*c>='a')|...

c语言计算字符串的长度(用指针)
include<cstdio> int main(){ char s[20];char*p;printf("please input a string(less than 20 character):\\n");\/\/scanf("%s",s);不能读入空格 gets(s);p=s;while(*p!='\\0')p++;printf("The string lenth is%d\\n",p-s);return 0;} printf()函数的调用格式为:printf("<格式化...

C语言中将字符串打印成指定长度的方法
程序源代码如下:include<stdio.h> intlength(char*p);voidmain(){ intlen;char*str[20];printf("pleaseinputastring:\\n");scanf("%s",str);len=length(str);printf("thestringhas%dcharacters.",len);} intlength(char*p){ intn;n=0;while(*p!='\\0'){ n++;p++;} returnn;} ...

相似回答