引言C语言作为一种历史悠久且功能强大的编程语言,至今仍被广泛应用于系统编程、嵌入式开发、游戏开发等多个领域。本文将以王楚的C语言编程之路为线索,深入探讨C语言的学习方法、实战技巧以及如何从入门到精通。...
C语言作为一种历史悠久且功能强大的编程语言,至今仍被广泛应用于系统编程、嵌入式开发、游戏开发等多个领域。本文将以王楚的C语言编程之路为线索,深入探讨C语言的学习方法、实战技巧以及如何从入门到精通。
案例一:计算器程序
#include
int main() { char operator; double num1, num2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf", &num1, &num2); switch (operator) { case '+': printf("%.1lf + %.1lf = %.1lf", num1, num2, num1 + num2); break; case '-': printf("%.1lf - %.1lf = %.1lf", num1, num2, num1 - num2); break; case '*': printf("%.1lf * %.1lf = %.1lf", num1, num2, num1 * num2); break; case '/': if (num2 != 0.0) printf("%.1lf / %.1lf = %.1lf", num1, num2, num1 / num2); else printf("Error! Division by zero."); break; default: printf("Error! Invalid operator."); } return 0;
} 案例二:冒泡排序算法
#include
void bubbleSort(int arr[], int n) { int i, j, temp; for (i = 0; i < n-1; i++) { for (j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }
}
int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr)/sizeof(arr[0]); int i; bubbleSort(arr, n); printf("Sorted array: \n"); for (i = 0; i < n; i++) printf("%d ", arr[i]); printf("\n"); return 0;
} 案例三:实现一个简单的HTTP服务器
#include
#include
#include
#include
#include
#include
#define PORT 8080
#define BUFFER_SIZE 1024
void handle_request(int client_socket) { char buffer[BUFFER_SIZE]; int read_size; while ((read_size = recv(client_socket, buffer, BUFFER_SIZE, 0)) > 0) { // 处理HTTP请求 printf("Received request: %s\n", buffer); // 构造HTTP响应 strcpy(buffer, "HTTP/1.1 200 OK\r\n"); strcat(buffer, "Content-Type: text/html\r\n"); strcat(buffer, "\r\n"); strcat(buffer, "Hello, World!
\r\n"); // 发送HTTP响应 send(client_socket, buffer, strlen(buffer), 0); } close(client_socket);
}
int main() { int server_socket, client_socket; struct sockaddr_in server, client; // 创建socket server_socket = socket(AF_INET, SOCK_STREAM, 0); if (server_socket == -1) { perror("Socket creation failed"); return 1; } // 初始化服务器地址结构 memset(&server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons(PORT); // 绑定socket if (bind(server_socket, (struct sockaddr *)&server, sizeof(server)) < 0) { perror("Socket binding failed"); return 1; } // 监听socket listen(server_socket, 3); // 循环接受客户端连接 while (1) { socklen_t client_addr_size = sizeof(client); client_socket = accept(server_socket, (struct sockaddr *)&client, &client_addr_size); if (client_socket < 0) { perror("Socket accept failed"); continue; } // 处理客户端请求 handle_request(client_socket); } close(server_socket); return 0;
} 通过以上内容,我们了解了王楚的C语言编程之路,从入门到精通的过程。在学习C语言的过程中,我们需要不断积累实战经验,深入理解相关领域的知识,才能成为一名优秀的C语言程序员。