|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char*s,char*t)
{
int i,s1;
s1=strlen(s);
for(i=0;i<=s1;i++)
t=s;
for(i=0;i<s1;i++)
t[s1+i]=s[s1-i-1];
t[s1]='\0';
}
int main()
{
char s[100],t[100];
printf("\nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s\n",t);
return 0;
}
本帖最后由 chxchxkkk 于 2020-6-30 11:10 编辑
这个程序想实现什么?
for(i=0;i<=s1;i++) -》 这个循环要起什么作用呢?
t=s;
直接 t = s 就可以 或者
t[s1]='\0'; 这一句决定了 t = s了,下面的循环不起作用
for(i=0;i<s1;i++)
t[s1+i]=s[s1-i-1];
如果要实现的下面的效果 比如:
s = abcde
t = abcdeedcba
那么,代码应该如下
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void fun(char*s,char*t)
- {
- int i,s1;
- s1=strlen(s);
- for(i=0;i<=s1;i++)
- t[i] = s[i];
- for(i=0;i<s1;i++)
- t[s1+i]=s[s1-i-1];
- t[s1+ s1]='\0';
- }
- int main()
- {
- char s[100],t[100];
- printf("\nPlease enter string s:");
- scanf("%s",s);
- fun(s,t);
- printf("The result is:%s\n",t);
- return 0;
- }
复制代码
如果想实现字符串逆置则应该如下
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void fun(char*s,char*t)
- {
- int i,s1;
- s1=strlen(s);
- // for(i=0;i<=s1;i++)
- // t[i] = s[i];
- for(i=0;i<s1;i++)
- t[i]=s[s1-i-1];
- t[s1]='\0';
- }
- int main()
- {
- char s[100],t[100];
- printf("\nPlease enter string s:");
- scanf("%s",s);
- fun(s,t);
- printf("The result is:%s\n",t);
- return 0;
- }
复制代码
|
|