Triste.own 发表于 2021-11-1 01:01:55

指针函数

2. 编写一个程序,输入一个字符串input,字符串长度小于1000,编写函数foo,将input传入foo的参数str。foo函数要在堆中创建一个适当长度的字符串,将str字符串中的大写字符依次复制到堆中的字符串,并将该字符串返回给main。main函数输出返回的字符串后,在堆中销毁该字符串。

jackz007 发表于 2021-11-1 01:28:37

#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 ++) if(str >= 'A' && str <= 'Z') p = str ;
                p = '\0'                                                                        ;
      } else {
                fprintf(stderr , "内存分配失败!\n")                                                ;
      }
      return p                                                                                 ;
}

int main(void)
{
      char str , * 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>

Triste.own 发表于 2021-11-1 01:35:43

jackz007 发表于 2021-11-1 01:28
编译、运行实况:

谢谢

jackz007 发表于 2021-11-1 01:38:04

Triste.own 发表于 2021-11-1 01:35
谢谢

      如果问题已经解决,应该设置 "最佳答案"。

tomok 发表于 2021-11-1 10:13:41

看来答案
页: [1]
查看完整版本: 指针函数