函数在C中反转字符串

函数在C中反转字符串,c,string,reverse,C,String,Reverse,我编写这个函数是为了在C中反转字符串,但是当在字符串中切换字符时,程序崩溃。我不知道是什么原因造成的,所以任何帮助都将不胜感激 void reverse(char s[]) { char c; int i; int j; for (i = 0, j = (strlen(s) - 1); i < j; i++, j--) { c = s[i]; s[i] = s[j]; //An error occurs here

我编写这个函数是为了在C中反转字符串,但是当在字符串中切换字符时,程序崩溃。我不知道是什么原因造成的,所以任何帮助都将不胜感激

void reverse(char s[])
{
    char c;
    int i;
    int j;

    for (i = 0, j = (strlen(s) - 1); i < j; i++, j--)
    {
        c = s[i];
        s[i] = s[j]; //An error occurs here
        s[j] = c;
    }

    printf("%s", s);
}

main()
{
    reverse("Example");
}
void reverse(字符s[])
{
字符c;
int i;
int j;
对于(i=0,j=(strlen(s)-1);i
有关详细信息,请阅读本文

另一环节

这应该可以解决它

main()
{    
char array[] = "Example";
reverse(array); 
}
当您执行
反转(“示例”)
时,这与

char *string = "Example";
reverse(string) //wont work

这些链接将从这里澄清您的疑问。

阅读此链接了解更多信息

另一环节

这应该可以解决它

main()
{    
char array[] = "Example";
reverse(array); 
}
当您执行
反转(“示例”)
时,这与

char *string = "Example";
reverse(string) //wont work

这些链接将从这里澄清您的疑问。

阅读此链接了解更多信息

另一环节

这应该可以解决它

main()
{    
char array[] = "Example";
reverse(array); 
}
当您执行
反转(“示例”)
时,这与

char *string = "Example";
reverse(string) //wont work

这些链接将从这里澄清您的疑问。

阅读此链接了解更多信息

另一环节

这应该可以解决它

main()
{    
char array[] = "Example";
reverse(array); 
}
当您执行
反转(“示例”)
时,这与

char *string = "Example";
reverse(string) //wont work
这些链接将从这里澄清您的疑问。

这应该可以:

#include<string.h>

int main()
{
  char str[100], temp = 0;
  int i = 0, j = 0;

  printf("nEnter the string :");
  gets(str);

  i = 0;
  j = strlen(str)-1;

  while(i<j)
  {
    temp=str[i];
    str[i]=str[j];
    str[j]=temp;
    i++;
    j--;
  }

  printf("nReverse string is :%s",str);

  return(0);
}
#包括
int main()
{
char str[100],temp=0;
int i=0,j=0;
printf(“输入字符串:”);
获取(str);
i=0;
j=strlen(str)-1;
而(i这应该有效:

#include<string.h>

int main()
{
  char str[100], temp = 0;
  int i = 0, j = 0;

  printf("nEnter the string :");
  gets(str);

  i = 0;
  j = strlen(str)-1;

  while(i<j)
  {
    temp=str[i];
    str[i]=str[j];
    str[j]=temp;
    i++;
    j--;
  }

  printf("nReverse string is :%s",str);

  return(0);
}
#包括
int main()
{
char str[100],temp=0;
int i=0,j=0;
printf(“输入字符串:”);
获取(str);
i=0;
j=strlen(str)-1;
而(i这应该有效:

#include<string.h>

int main()
{
  char str[100], temp = 0;
  int i = 0, j = 0;

  printf("nEnter the string :");
  gets(str);

  i = 0;
  j = strlen(str)-1;

  while(i<j)
  {
    temp=str[i];
    str[i]=str[j];
    str[j]=temp;
    i++;
    j--;
  }

  printf("nReverse string is :%s",str);

  return(0);
}
#包括
int main()
{
char str[100],temp=0;
int i=0,j=0;
printf(“输入字符串:”);
获取(str);
i=0;
j=strlen(str)-1;
而(i这应该有效:

#include<string.h>

int main()
{
  char str[100], temp = 0;
  int i = 0, j = 0;

  printf("nEnter the string :");
  gets(str);

  i = 0;
  j = strlen(str)-1;

  while(i<j)
  {
    temp=str[i];
    str[i]=str[j];
    str[j]=temp;
    i++;
    j--;
  }

  printf("nReverse string is :%s",str);

  return(0);
}
#包括
int main()
{
char str[100],temp=0;
int i=0,j=0;
printf(“输入字符串:”);
获取(str);
i=0;
j=strlen(str)-1;
而(i
“Example”
是一个字符串文本,这通常意味着您无法更改它

请试试这个:

char str[] = "Example";
reverse(str);
“Example”
是一个字符串文本,通常意味着您无法更改它

请试试这个:

char str[] = "Example";
reverse(str);
“Example”
是一个字符串文本,通常意味着您无法更改它

请试试这个:

char str[] = "Example";
reverse(str);
“Example”
是一个字符串文本,通常意味着您无法更改它

请试试这个:

char str[] = "Example";
reverse(str);

您需要将字符指针作为函数中的参数:

Void reverse (char *ptr)
{
    // ...
}

并对指针执行操作。

您需要将字符指针作为函数中的参数:

Void reverse (char *ptr)
{
    // ...
}

并对指针执行操作。

您需要将字符指针作为函数中的参数:

Void reverse (char *ptr)
{
    // ...
}

并对指针执行操作。

您需要将字符指针作为函数中的参数:

Void reverse (char *ptr)
{
    // ...
}

并对指针执行操作。

您不能更改字符串文字。请改用字符数组。您应该创建一个新字符串,并返回(或打印)该字符串one@user3277234正如您所知,在函数中,数组实际上是指针(也就是说,您有
char*s
,而不是
chars[]
)。更改字符指针中的单个字符是未定义的行为。因此,请按照@Mathias711的建议创建一个新字符串。@Diti修改单个或多个字符是完全有效的。真正的罪魁祸首是字符串文字,
s
指向。您不能更改字符串文字。请改用字符数组。您应该创建一个新的字符串响铃,并返回(或打印)该one@user3277234正如您所知,在函数中,数组实际上是指针(也就是说,您有
char*s
,而不是
chars[]
)。更改字符指针中的单个字符是未定义的行为。因此,请按照@Mathias711的建议创建一个新字符串。@Diti修改单个或多个字符是完全有效的。真正的罪魁祸首是字符串文字,
s
指向。您不能更改字符串文字。请改用字符数组。您应该创建一个新的字符串响铃,并返回(或打印)该one@user3277234正如您所知,在函数中,数组实际上是指针(也就是说,您有
char*s
,而不是
chars[]
)。更改字符指针中的单个字符是未定义的行为。因此,请按照@Mathias711的建议创建一个新字符串。@Diti修改单个或多个字符是完全有效的。真正的罪魁祸首是字符串文字,
s
指向。您不能更改字符串文字。请改用字符数组。您应该创建一个新的字符串响铃,并返回(或打印)该one@user3277234正如您所知,在函数中,数组实际上是指针(也就是说,您有
char*s
,而不是
chars[]
)。更改字符指针中的单个字符是未定义的行为。因此,请按照@Mathias711的建议创建一个新字符串。@Diti修改单个或多个字符是完全有效的。真正的罪魁祸首是字符串文字,
s
指向。