作业帮 > 综合 > 作业

运行后的图是:#include <stdio.h>#include <stdlib.h>void

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/30 08:33:12
运行后的图是:


#include <stdio.h>
#include <stdlib.h>
void invert(char * pString);
int main()
{
    char aString[20]= {0};
    char* pCh=NULL;
    char aResult[20]= {0};
    char* pResult=aResult;//特别注意函数中传指针的定义
    int i = 0,j=0;
    printf("请输入一个字符串(长度不能超过20)\n");
    scanf("%s",&aString);
    while(*(aString+i)!='\0')
    {
        if(*(aString+i)>=97&&*(aString+i)<=122)
        {
            *(aString+i)=*(aString+i)-32;
        }
        printf("%c",*(aString+i));
        i++;
    }
    printf("\n");
    printf("逆序结果为:\n");
    invert (aString);
    for(j=0; j<i; j++)
    {
        printf("%c",aString[j]);
    }
    printf("\n");

    system("pause");
    return 0;
}

void invert(char * pString)
{
    int nSize=0;
    int i=0;
    char temp;
    if(pString!=NULL)
    {
        while(*(pString+nSize)!='\0')
        {
            nSize++;
        }
        for(i=0; i<nSize/2; i++)
        {
            temp=(pString+i);
            *(pString+i)=*(pString + nSize-1-i);
            *(pString+nSize-1-i)=temp;
        }
    }
}
你这个有错误,竟然能够编译通过.不知道你用的是啥软件.这么不严谨.
在前后逆序子函数中
temp=(pString+i);
应改为
temp=*(pString+i);
char和char *类型不匹配