C pointers and string
来源:互联网 发布:淘宝搜索精品时尚女衫 编辑:程序博客网 时间:2024/05/08 23:12
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>typedef int (* fptrOperation)(const char *, const char *);char *returnALiteral(int);size_t stringLength(const char *str);char *format(char *, size_t, const char*, size_t, size_t);int compare(const char*, const char*);int compareIgnoreCase(const char*, const char*);char* stringToLower(const char *);void bubleSort(char* [], size_t, fptrOperation);int main(int argc, char *argv[]){char simpleArray[] = "simple string";char *simplePtr = (char*)malloc(strlen("simple string")+1);strcpy(simplePtr, "simple string");printf("%d\n",stringLength(simpleArray));//printf("%d\n",stringLength(&simpleArray));printf("%d\n",stringLength(&simpleArray[0]));char *buffer = (char *)malloc(100);printf("%s\n", format(buffer, 100, "Alex", 30, 50));printf("test for argv\n");for (int i = 0; i < argc; i++) {printf("argv[%d]: %s\n", i, *argv++);}char* names[] = {"Bob", "Ted", "Carol", "Alice", "alice"};printf("%d\n", sizeof(names));bubleSort(names, 5, compareIgnoreCase);for (int i = 0; i < 5; i++) {printf("%s ", *(names + i));}return 0;}size_t stringLength(const char *str) {size_t len = 0;while (*str++) len++;return len;}char *format(char *buffer, size_t size, const char * name, size_t quantity, size_t weight) {snprintf(buffer, size, "Item: %s Quantity: %u Weight: %u", name, quantity, weight);return buffer;}char* returnALiteral(int code) {switch(code) {case 100:return "Boston Processing Center";case 200:return "Denver Processing Center";case 300:return "Atlanta Processing Center";case 400:return "San Jose Processing Center";}}int compare(const char *s1, const char*s2) {return strcmp(s1, s2);}int compareIgnoreCase(const char *s1, const char *s2) {char *temp1 = stringToLower(s1);char *temp2 = stringToLower(s2);int result = strcmp(temp1, temp2);free(temp1);free(temp2);return result;}char* stringToLower(const char * str) {char *temp = (char *)malloc(strlen(str) + 1);char *start = temp;while (*start++ = tolower(*str++));return temp;}void bubleSort(char* arr[],size_t size, fptrOperation operation) {int swap = 1;while (swap) {swap = 0;for (size_t i = 0; i < size - 1; i++) {if (operation(arr[i], arr[i+1]) > 0) {swap = 1;char *temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp; }}}}
0 0
- C pointers and string
- Function Pointers and Callbacks in C
- Understanding and using c pointers 第一章读书笔记
- Something about C pointers and arrays
- C. Vasya and String
- Pointers on C——12 Using Structures and Pointers.1
- Pointers on C——12 Using Structures and Pointers.2
- Pointers on C——12 Using Structures and Pointers.3
- Pointers on C——12 Using Structures and Pointers.4
- 6.087 Practical Programming in C, lec5: Pointers and memory addressing
- Step-by-step learning C + +(chapter four summary____Array and Pointers)
- 《Understanding and Using C Pointers》要点先睹为快 系统总结
- Understanding and using c pointers 第五章读书笔记
- Understanding and using c pointers 第二章读书笔记
- Understanding and using c pointers 第三章读书笔记
- Understanding and using c pointers 第四章读书笔记
- Understanding and using c pointers 第六章读书笔记
- Understanding and using c pointers 第七章读书笔记
- HDU 1217 Arbitrage floyd变形
- Android APK混淆编译出现的问题
- 动态规划之01背包
- JQuery日记 2014-4.27
- 模块管理常规功能自定义系统的设计与实现(09--数据新增[二、单条数据导入])
- C pointers and string
- WINDOWS 32C++多线程举例
- Android Java执行Shell命令
- 【算法导论】第二章 算法入门 重点摘要
- 多益网络2014暑期实习笔试题
- android下的样式
- 线性表分析及Java实现
- Android自定义控件:圆形进度条
- Oracle 10g RAC ASM Instance Conenction ORA-12528