重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言字符串倒置的处理方法:
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、旬阳网络推广、小程序制作、旬阳网络营销、旬阳企业策划、旬阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供旬阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
定义一个字符指针,批向字符串首地址
移动字符指针到字符串尾
当指针不是字符串首地址时,循环向前输出每一个当前字符
参考代码如下:
void main()
{
char *s="hello world" ;
char *p=s; //1
while( *p ) p++ ; //2
while( p!=s ) //3
{
p--;
printf("%c", *p );
}
}
采用函数实现,方法为:
void reverse( char *s )
{
char *p=s; //1
while( *p ) p++ ; //2
p--;
while( ps )
{
char t=*s; //交换位置
*s=*p;
*p=t;
p--; //p向前移动一位
s++; //s向后移动一位。当ps相遇时,完成交换
}
}
void main()
{
char s[]="hello world" ;
reverse( s );
printf("%s\n", s );
}
以下是一个 C 语言字符串反转函数的示例代码,该函数不使用任何标准库函数:
```c
#include stdio.h
void reverse_string(char* str) {
if (str == NULL) {
return;
}
int len = 0;
while (str[len] != '\0') {
len++;
}
for (int i = 0; i len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
printf("原字符串:%s
", str);
reverse_string(str);
printf("反转后字符串:%s
", str);
return 0;
}
```
在上面的代码中,我们定义了一个反转字符串的函数 `reverse_string`。该函数使用一个 for 循环,将字符串中的所有字符倒序交换,从而实现字符串的反转。
在程序的 main 函数中,我们调用 `gets` 函数读入一个字符串,然后调用 `reverse_string` 函数来反转该字符串,并使用 `printf` 函数打印反转后的字符串。
需要注意的是,由于 `gets` 函数存在安全隐患,它已经被标记为弃用,建议使用更安全的 `fgets` 函数来读取用户输入的字符串。
示例输出:
```
请输入一个字符串:Hello World!
原字符串:Hello World!
反转后字符串:!dlroW olleH
```
希望这个代码可以帮助你实现你所需的功能。
#include stdio.h
#include string.h
void reverse(char *x)
{
char c;
int a=0,b=strlen(x)-1;
for(;ab;a++,b--)
{
c=x[a];
x[a]=x[b];
x[b]=c;
}
}
int main()
{
char s1[]="",s2[]="a";
char s3[]="sd",s4[]="dfg";
reverse(s1);
reverse(s2);
reverse(s3);
reverse(s4);
printf("%s\n%s\n",s1,s2);
printf("%s\n%s\n",s3,s4);
return 0;
}
代码
输出
#includestdio.h
#define N 20
void invert(char *s) { char *p,*q,c;
p=q=s; while ( *q ) q++; q--; //p指向首字符,q指向尾字符
while ( pq ) { c=*p; *p=*q; *q=c; p++; q--; }
}
void main() { char s[N][256]; int i,n;
scanf("%d",n); for ( i=0;in;i++ ) gets(s[i]);
for ( i=0;in;i++ ) invert(s[i]);
for ( i=0;in;i++ ) printf("%s\n",s[i]);
}