我自己独立写的第一个C程序,哈哈
嘿嘿,写了半个小时左右,调试时间5分钟
/**
* 获取用户输入的字符串,打印行号
* skchen @ 2009.08.29 03:03
*/
#include <stdio.h>
#include <stdlib.h>
#define MEM_SIZE 100
void main() {
//行号
int line_num = 1;
//行字符数
int char_num = 1;
//行指针
char *line = NULL;
//用户输入的字符
char c;
//已分配内存大小
int total_mem_size = 0;
while ((c = getchar()) != EOF && c != '\n') {
do {
//看看内存空间是否足够用,要留一位给\0
if (total_mem_size < char_num) {
//分配扩大内存空间
line = realloc(line, total_mem_size + MEM_SIZE);
if (line == NULL) {
printf("动态内存分配错误!程序退出!\n");
exit(EXIT_FAILURE);
}
//如果分配成功,内存总分配大小加上去
total_mem_size += MEM_SIZE;
}
//把字符给数组
line[char_num - 1] = c;
char_num++;
//继续获取字符
c = getchar();
//判断是否回车,如果不是则未结束,继续循环
} while (c != '\n');
//添加字符串结束符
line[char_num - 1] = '\0';
//打印结果
printf("line: %d, length: %d, size: %d, string: %s\n", line_num, char_num, total_mem_size, line);
//释放内存
free(line);
//指针重新置为NULL
line = NULL;
//内存大小置为0
total_mem_size = 0;
//字符长度初始化为1
char_num = 1;
//行号+1
line_num++;
}
exit(EXIT_SUCCESS);
}
...全文
相关推荐
STM8的C语言编程(9)-EEPROM应用
#### 实验程序示例以下是一段用于STM8单片机的C语言实验程序,旨在演示如何向EEPROM的第一个单元(地址004000H)写入特定数据,并随后读取至全局变量中:```c#include "STM8S207C_S.h"unsigned
C程序设计:函数.ppt
在C程序设计中,函数是实现模块化编程的关键元素,它们允许我们将代码组织成独立的、可重用的块,每个块负责一个特定任务。函数的使用有助于提高代码的可读性、可维护性和可扩展性。
C程序设计初步第一部分学写第一个C程序.ppt
C程序设计初步第一部分学写第一个C程序.ppt
c51单片机点亮第一个led灯的程序keil文件
c51单片机点亮第一个led灯的程序/*********************************************************************************
win32 api写的第一个程序
win32 api上写的第一个程序,HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1


