扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一些错误在注释中说明,将输出1711717
成都创新互联专注于中大型企业的做网站、成都做网站和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户近1000家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
#include stdio.h
#include string.h
fun(char *w,int n)
{char t,*s1,*s2;
s1=w;//首地址,就是1
s2=w+n-1;//尾地址,就是7
while(s1s2)//当s1小于s2时,循环下去
{t=*s1++;
*s1=*s2--;
*s2=t;
}
/*
第一轮交换,是1734517,s1指向w[1],s2指向w[5]
第二轮交换,是1714717,s1指向w[2],s2指向w[4]
第三轮交换,是1711717,s1指向w[3],s2指向w[3]
*/
}
main()
{char p[]="1234567";
fun(p,strlen(p));//将指向1和指向7的地址传送给fun函数
puts(p);
}
其实你这里主要问题是不能接收到两个输入的
字符串
。
你这里的接受
规则
是输入两个字符串并用
,
号分隔,比如:abc,abc
但是这里就有一个问题了!计算机怎么知道你输入的,号是你输入的第一个字符串的一个字符呢?还是你两个字符串的分隔?
所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc
第二个字符串为\n
所以你这里得到的始终是1
至于解决的办法:
让计算机识别你的分隔
符号
那方法就很多了,比如
scanf("%s%s",a,b);输入的时候用空白符(
空格
,tab,回车键)相间隔
你这个是字符串倒序的函数,start指向的是string的地址,所以当string里面的值改变的时候,strat的值也会改变,再然后不是start前面加了最后一个字的字符,而是最后一个字符跟第一个字符互换了位置,第二个跟倒数第二个互换位置,以此类推。
strcmp是比较两个字符串大小的。
最简单和最容易想到的方法如下:
遍历字符串s,将s的每一个字符和字符串r的每一个字符进行比较,相等则替换,同时替换次数加1,然后开始下次比较。看代码吧!
#include stdio.h
int strrepl(char *s, char *r, char c) {
int rep_times = 0;
char *r_temp;
//
// 遍历被替换的字符串s
//
while ( *s != '\0' ) {
//
// 遍历要替换的字符串r
//
r_temp = r;
while ( *r_temp != '\0' ) {
//
// 判断是否找到要替换的字符
//
if ( *s == *r_temp ) {
*s = c;
rep_times++;
break;
}
r_temp++;
}
s++;
}
return rep_times;
}
int main(void) {
char s[] = "code(1.2)";
char r[] = "().";
char c = '_';
int rep_times;
printf("原始字符串: %s\n替换的字符: %s\n用\'%c\'替换\n", s, r, c);
rep_times = strrepl(s, r, c);
printf("替换之后的字符串: %s\n替换次数: %d\n", s, rep_times);
return 0;
}
运行结果图
#includestring.h // 导入头文件string.h
#includestdio.h // 导入头文件stdio.h
char *fun(char *t) // 定义函数, 名称fun, 输入参数为char *, 返回值为char *
{
char *p = t; // 把t的值赋值给p, 相当于p指向与t相同的字符串
return p + strlen(t) / 2; // strlen返回值为字符串长度, 然后p位移其一半(向下取整)的距离并返回值
}
int main(int argc, char *argv[])
{
char *str = "abcdefgh"; // str指向字符串“abcdefgh”
str = fun(str); // str调用fun函数, 参数为str, 并将返回值赋值给str
puts(str); // 此时str指向e, 输出为“efgh\n”
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流