当前位置:首页 » 编程语言 » c语言程序将字符串反转
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言程序将字符串反转

发布时间: 2022-12-20 01:25:47

1. c语言编程题:颠倒字符串

#include<stdio.h>
#defineN20
voidinvert(char*s){char*p,*q,c;
p=q=s;while(*q)q++;q--;//p指向首字符,q指向尾字符
while(p<q){c=*p;*p=*q;*q=c;p++;q--;}
}
voidmain(){chars[N][256];inti,n;
scanf("%d",&n);for(i=0;i<n;i++)gets(s[i]);
for(i=0;i<n;i++)invert(s[i]);
for(i=0;i<n;i++)printf("%s ",s[i]);
}

2. 用c语言将一组字符串前后颠倒

有人已经回答过:
http://..com/question/423482939587489732.html
代码如下:

void fun(char*s)
{
int i,j=0,n;
char t[100];//t不要和s指向同一个字符串,不然后面的赋值操作有点乱套。
n=strlen(s);
for(i=n-1;i>=0;i--)//i==0的时候也要复制过去。
t[j++]=s[i];
for(i=0;i<n;i++)
s[i]=t[i];
s[++i]='\0';
}

3. 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)
{
Stack<char>
stack
=
new
Stack<char>();
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);
}

4. C语言中如何实现字符串的反转

#include<stdio.h>
#include<string.h>

string_change(char*p)
{
inti,len;
chartemp;
len=strlen(p);

//printf("%d ",len);
//testprintf("%d ",len);

for(i=0;i<(len/2);i++)
{
temp=p[i];
p[i]=p[len-1-i];
p[len-1-i]=temp;
}
}

intmain(void)
{
chara[20]="1234567890";

printf("%s ",a);
string_change(a);
printf("%s ",a);

return0;
}

两个明显的误解:

  1. char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。

  2. c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];

5. C语言实现字符串单词反转

int reverse(char *str, int begin, int end)
{
int result = 0;
if(begin < end)
{
result = 1;
return result;
}
char tmp;
while(begin<end)
{
tmp = str[begin];
str[begin] = str[end];
str[end] = str[begin];
end--;
begin++;
}
return result;
}

int main()
{
int begin,end =0
char * str = "i am an handsome boy";
end = strlen(str) -1;
reverse(str, 0, end);
end = 0;
while (str[end] != '\0')
{
while(str[end] != ' ' && str[end] != '\0')
{
end ++;
}
reverse(str, begin, end-1);
while(str[end] == ' ' && str[end] != '\0')
{
end ++;
}
begin = end;
}
printf(str);
return 0 ;
}

6. c语言的问题字符串反转

rever()函数修改如下:

char *rever(char *dest,const char *src)
{
int n = strlen(src)-1;
for (dest += n,*(dest+1)=0;n>=0;dest--,n--)
*dest=*src++;
return dest+1;
}

7. 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;
}

8. C语言 reverse 反转字符串问题

从一端开始,一直到字符串中间位置,每个字符,与结尾处对称位置字符对调值即可。

函数如下:

char*reverse(char*s)
{
intl,i;
chart;
l=strlen(s);
for(i=0;i<=l/2;i++)
{
t=s[i];
s[i]=s[l-i-1];
s[l-i-1]=t;
}

returns;
}

9. C语言字符串逆转函数

  1. 只需要将字符数组的前后数据进行交换就行了。


  2. #include<stdio.h>
    #include<string.h>

    char*reverse(char*x)
    {
    inti,tem,len=strlen(x);
    intn=len/2;
    for(i=0;i<=n;i++)//前后交换数据
    {
    tem=x[i];
    x[i]=x[len-1-i];
    x[len-1-i]=tem;
    }
    returnx;
    }

    intmain()
    {
    charp[]="abcdefghijk";
    printf("relust=%s ",reverse(p));
    return0;
    }