今天给各位分享c语言将字符串反转的知识,其中也会对c语言将字符串反转输出进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言中如何实现字符串的反转?2、c语言如何实现字符串的反转3、c语言的问题字符串反转4、C语言字符串数组反转相关的问题5、C语言 字符串反转函数(不使用库函数)6、C语言字符串逆转函数
C语言中如何实现字符串的反转?
#includestdio.h
#includestring.h
string_change(char * p)
{
int i,len;
char temp;
len = strlen(p);
//printf(“%d \n”, len);
//test printf(“%d\n”,len);
for(i=0; i(len/2); i++)
{
temp = p[i];
p[i] = p[len-1-i];
p[len-1-i] = temp;
}
}
int main(void)
{
char a[20] = “1234567890”;
printf(“%s\n”,a);
string_change(a);
printf(“%s\n”,a);
return 0;
}
两个明显的误解:
char* a=”12***”; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。
c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];
c语言如何实现字符串的反转
#includestdio.h
void reverse(char s[])
{ int i,j;
char c;
for(i=0; s[i]; i++);
for(i–,j=0; ji;)
{ c=s[j];
s[j++]=s[i];
s[i–]=c;
}
}
int main()
{ char s[200];
gets(s);
reverse(s);
puts(s);
return 0;
}
c语言的问题字符串反转
因为你在dest++时,改变了dest的指向的位置,所以没有输出正确的结果。
按照你的程序给你修改了一下,请参考。
1 #include stdio.h
2 #include string.h
#include malloc.h // 注意这里:增加使用malloc的头文件,消除warning
3 main()
4 {
5 char *a = “abc”;
6 char *rever(char *dest,const char *src);
7 char *b = (void *)malloc(strlen(a)+1);
memset(b, 0x00, sizeof(strlen(a)+1)); // 注意这里:对malloc的buf进行初始化
8 printf(“%s\n”, rever(b,a));
9 }
10 char *rever(char *dest,const char *src)
11 {
12 int n;
char *temp = dest; // 注意这里:用来记录dest的初始地址
13 for (n = strlen(src)-1;n=0;dest++,n–)
14 *dest = *(src+n);
15 return temp; // 注意这里:返回dest字符串的首地址
16 }
程序给你测试通过。
C语言字符串数组反转相关的问题
c语言的问题字符串反转可以使用下列两种方法:
使用Array.Reverse方法
对于字符串反转,我们可以使用.NET类库自带的Array.Reverse方法
public
static
string
ReverseByArray(string
original)
{
char[]
c
=
original.ToCharArray();
Array.Reverse(c);
return
new
string(c);
}
可以使用栈后进先出的特性来对数组进行反转。先将数组所有元素压入栈,然后再取出,顺序很自然地就与原先相反了。
public
static
string
ReverseByStack(this
string
original)
{
Stackchar
stack
=
new
Stackchar();
foreach
(char
ch
in
original)
{
stack.Push(ch);
}
char[]
c
=
new
char[original.Length];
for
(int
i
=
0;
i
original.Length;
i++)
{
c[i]
=
stack.Pop();
}
return
new
string(c);
}
C语言 字符串反转函数(不使用库函数)
char *revstr(char *str, size_t len)
{
char *start = str;
char *end = str + len – 1;
char ch;
if (str != NULL)
{
while (start end)
{
ch = *start;
*start++ = *end;
*end– = ch;
}
}
return str;
}
C语言字符串逆转函数
只需要将字符数组的前后数据进行交换就行了。
#include stdio.h
#include string.h
char* reverse(char *x)
{
int i, tem, len = strlen(x);
int n = len / 2;
for (i = 0; i = n; i++) // 前后交换数据
{
tem = x[i];
x[i] = x[len – 1 – i];
x[len – 1 – i] = tem;
}
return x;
}
int main()
{
char p[] = “abcdefghijk”;
printf(“relust = %s\n”, reverse(p));
return 0;
}
c语言将字符串反转的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言将字符串反转输出、c语言将字符串反转的信息别忘了在本站进行查找喔。