|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yexing 于 2020-4-1 23:05 编辑
课后作业原题:
连接字符串 —— strcat 和 strncat 函数
使用 fgets 函数接收用户输入的两个字符串到 str1 和 str2 中,将 str2 连接到 str1 后边,并打印出来。
我的代码:
- #include <stdio.h>
- #define MAX 1024
- int main()
- {
- int i, j, k;
- char str1[MAX];
- char str2[MAX];
- char str3[MAX];
- char *pstr1 = str1;
- char *pstr2 = str2;
- char *pstr3 = str3;
-
- printf("请输入第一个字符串:");
- fgets(str1, MAX, stdin);
- printf("请输入第二个字符串:");
- fgets(str2, MAX, stdin);
-
- for (i = 0; *(pstr1+i) != '\0'; i++){;} //这个循环就是想获得 str1 的长度并存储到 i
- //*(pstr1+i) = ''; //想去掉'\0',但是报错
- //*(pstr1+i-1) = ''; //想去掉换行符,但是这两行报错,也求助一下大神该怎么解决
-
- for (j = 0; j < i; j++)
- {
- *(pstr3+j) = *(pstr1+j);
- }
- for (j = i-1, k = 0; *(pstr2+k) != '\0'; j++, k++)
- {
- *(pstr3+j) = *(pstr2+k);
- }
- *(pstr3+j) = '\0';
-
- printf("连接后的结果是:%s", str3);
-
- return 0;
- }
复制代码
运行结果:
- 请输入第一个字符串:ilove
- 请输入第二个字符串:fishc.com
- 连接后的结果是:ilovefishc.com
复制代码
最后多出来几个H是怎么回事?(已解决)
还有一个问题,如果想去掉字符数组最后的换行符和 '\0' ,应该如何去掉?
|
|