登 录
1.使用系统自动分配的静态内存案例。
#include <stdio.h> #include <string.h> char *upcase(char *inputstring, char *newstring); int main(void){ char str1[100],str2[100]; char ins1[30],ins2[30]; printf("Please input string1:/n"); scanf("%s",ins1);//接受字符串1 printf("Please input string2:/n"); scanf("%s",ins2);//接受字符串2 upcase(ins1,str1); upcase(ins2,str2); printf("str1=%s,str2=%s/n",str1,str2); return 0; } char *upcase(char *inputstring, char *newstring){ int counter; strcpy(newstring,inputstring);//拷贝字符串inputstring到newstring for(counter=0;counter<strlen(newstring);counter++){ if(newstring[counter]>=97 && newstring[counter]<=122)//将小写字母转换为大写 newstring[counter] -= 32; } return newstring; }
2.使用手动向系统申请并分配内存的案例。
#include <stdio.h> #include <string.h> #include <stdlib.h> char *upcase(char *inputstring); int main(void){ char *str1, *str2; char str3[30]; printf("Pleas input string one:/n"); scanf("%s",str3); str1 = upcase(str3); printf("str1=%s/n",str1); free(str1);//释放str1所占用的内存 return 0; } char *upcase(char *inputstring){ char *newstring; int counter; if (!(newstring=malloc(strlen(inputstring) + 1))) {//分配strlen长度+1的空间给newstring //如果分配内存失败,则提示错误并停止执行 printf("Error:Memory"); exit(255); } strcpy(newstring, inputstring); //大小写转换 for(counter=0;counter<strlen(inputstring);counter++){ if(newstring[counter]>=97 && newstring[counter]<=122){ newstring[counter] -= 32; } } return newstring; }
抱歉!评论已关闭.