day1 手癌菜鸟相应源码 02

本文介绍使用C语言通过`getchar()`函数接收字符输入并存储到字符数组中,同时展示如何使用`gets()`函数读取整行输入。接着,通过`strcpy()`函数复制字符串并演示字符串拼接。最后,通过二维数组展示C语言中数组的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存结构示意图 by安萌




test9

//缓冲区接收字符 

 3 int main()

  4 {
  5     char buf[32] = {0}, str[32] = {0};
  6     int i;
  7 
  8     //gets(buf);
  9     i = 0;
 10     do {
 11         buf[i] = getchar();
 12         i++;
 13     } while ( i<32 && buf[i-1] !='\n' );
 14     
 15     if ( i==32 && buf[i-1]!='\n' ) {
 16         while ( getchar() != '\n' )
 17             ;
 18     }
 19     buf[i-1] = '\0';
 20     
 21     i = 0;
 22     do {
 23         str[i] = getchar();
 24         i++;
 25     } while ( i<32 && str[i-1] !='\n' );
 26     str[i-1] = '\0';
 27     printf("buf=%s\n", buf);
 28     printf("str=%s\n", str);
 29     
 30     return 0;

 31 }


test10

#include <stdio.h>
#include <string.h>

#include <stdio.h>
#include <string.h>


int main()
{
char str1[64] = {'\0'};// '\0'的asicc码是0,此数组中存储64个0


strcpy(str1, "hello world");//

//函数名: strcpy

//功  能: 串拷贝
//用  法: char *strcpy(char *str1, char *str2); 



strcpy(str1+6, "uplooking");


printf("str1:%s\n", str1);


return 0;


test11

//二维数组简单测试

int main()
{
int arr[3][4] = { 
{1,2,3,4},
{5,6,7,8},
{9,10,11,12} 
   };
int i, j;


for ( i=0; i<3; i++) {
for ( j=0; j<4; j++) {
printf("%p ", &arr[i][j]);
}
printf("\n");
}
printf("arr=%p arr[0]=%p\n", arr, arr[0]);
printf("arr+1=%p arr[0]+1=%p\n", arr+1, arr[0]+1);


for ( i=0; i<3; i++) {
for ( j=0; j<4; j++) {
printf("%d ", *(*(arr+i)+j)); //arr[i][j]
}
printf("\n");
}




return 0;


test12

#include <stdio.h>


int main()
{
char str[32] = {"hello world uplooking redhat"};


printf("%p %p\n", str, (int*)str);
printf("%c\n", *(str+1));
printf("%c\n", *((char *)((int*)str+1)));

return 0;
}


test13

//函数

#include <stdio.h>


int func(int , int );
函数的声明:告诉编译器有这么个函数,方便后面调用时进行合法性检查

函数必须先声明再调用

参数中参数名可以省略,参数类型不可以省略

没有参数用void  没有返回值用void


int main(void)
{
int x, y;

scanf("%d %d", &x, &y);

printf("%d\n", func(x, y));

函数的调用:调用 返回

x  y称为实参

调用:保存当前函数的上下文环境,调用函数并将实参的值传给形参

返回:将return后的表达式的值返回,并恢复上下文环境

参数可以有多个 返回值只能有一个,(可以利用出参获得多个需要的值)

return 0;
}

函数的定义:确定函数的功能

a b称为形参

return返回一个值并使函数终止

return后的表达式的值的类型必须是函数的返回值类型

函数声明和函数定义的三要素必须一样

如果函数的定义出现在函数的声明或者调用之前 定义也是声明
int func(int a, int b)
{
return a>b?a:b;
}


test14

#include <stdio.h>


void func(int *x)
{
(*x)++;
}


int main()
{
int x = 10;


func(&x);
printf("x=%d\n", x);


printf("%p %p %p\n", main, func, printf);


return 0;

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值