|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
2. 编写一个程序,输入一个字符串input,字符串长度小于1000,编写函数foo,将input传入foo的参数str。foo函数要在堆中创建一个适当长度的字符串,将str字符串中的大写字符依次复制到堆中的字符串,并将该字符串返回给main。main函数输出返回的字符串后,在堆中销毁该字符串。
- #include <stdio.h>
- #include <stdlib.h>
- char * foo(char str[])
- {
- int i , j ;
- char * p ;
- if(p = (char *) malloc(sizeof(char) * 1000)) {
- for(i = j = 0 ; str[i] ; i ++) if(str[i] >= 'A' && str[i] <= 'Z') p[j ++] = str[i] ;
- p[j] = '\0' ;
- } else {
- fprintf(stderr , "内存分配失败!\n") ;
- }
- return p ;
- }
- int main(void)
- {
- char str[1000] , * p ;
- gets(str) ;
- p = foo(str) ;
- printf("%s\n" , p) ;
- free(p) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- aaaaAaaabbbbBbbbBcccCccccCcccCcddDdDddDddddDdddEEEeeeeeeeeEeeeE123456
- ABBCCCDDDDEEEEE
- D:\00.Excise\C>
复制代码
|
|