字符串反向程序抛出异常

Ami*_*rma 2 c++

// ExampleCodes.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include<stdio.h>
#include<iostream>
using namespace std;    

char* stringReverse(char* s)    
{    

    char temp, *p,*q;    
    q = s;    
    while( *(++q));    
    for( p = s; p &lt; --q; p++)    
    {    
        temp = *p;    
        *p = *q;     
        *q = temp;    
    }    
    return s;    
}    


int _tmain(int argc, _TCHAR* argv[])    
{    

    stringReverse("StringReverse");    
    return 0;    
}    
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

您无法修改常量字符串文字.

stringReverse("StringReverse");
Run Code Online (Sandbox Code Playgroud)

您可以使用字符数组:

char str[] = "StringReverse";
Run Code Online (Sandbox Code Playgroud)


caf*_*caf 5

"StringReverse"C 这样的字符串文字不允许在C中修改.使用数组:

char str[] = "StringReverse";
stringReverse(str);
Run Code Online (Sandbox Code Playgroud)

请注意,stringReverse()如果您为其提供零长度字符串,则您的函数具有未定义的行为.