c - 试图在C中增加一个字符串指针
问题描述
基本上我想做的是取一个简单的字符串abcd
,并将其添加到一个新字符串中,每个字母之间都有星号,就像这样,a*b*c*d
. 但似乎我对应该执行此操作的功能有问题。这是我的代码。
char widen_stars(char *user1p, char *user2p) {
char *newStr;
newStr = malloc(20 * sizeof(int));
while (*user1p) {
*newStr = *user1p;
//return printf("Test: %s \n", newStr);
newStr++;
//return printf("Test: %s \n", newStr);
user1p++;
*newStr = '*';
newStr++;
}
return printf("String with asterisks: %s \n", newStr);
}
我要做的是创建一个新字符串,在其中添加一个来自原始字母的字母,然后添加星号,然后递增并继续循环。
我遇到问题的地方是第二个return printf test
它一直没有打印出来,但首先return printf test
它显示我已经成功移动了第一个字符,我不确定发生了什么。新的编程,所以任何帮助表示赞赏。
解决方案
您需要保留原始的 newStr 值。零也终止它。
char widen_stars(char *user1p, char *user2p) {
char *newStr;
newStr = malloc(20 * sizeof(int));
char *keep = newstr; // save start of new string
while (*user1p) {
*newStr = *user1p;
//return printf("Test: %s \n", newStr);
newStr++;
//return printf("Test: %s \n", newStr);
user1p++;
*newStr = '*';
newStr++;
}
*newstr = '\0'; // zero terminate new string
return printf("String with asterisks: %s \n", keep); // print it
}
推荐阅读
- ios - WKWebView loadFileURL:allowingReadAccessToURL: 不允许访问文件或临时文件中的捆绑包
- javascript - React Reusable Button Component - 如何正确传递背景颜色道具?
- css - 动态 CSS 网格小列,先有一个大列
- java - LLVM IR 与 JAVA-API
- windows - 默认安装后,Windows 2016 Server 上的 SSMS.exe 在哪里?
- python - 迭代字符串列表以提取子字符串
- python - 训练和验证损失为零
- angularjs - 在 AngularJS 1.4.x 中将属性从父指令转发到子元素
- itext7 - iText7 数字签名图像对齐
- java - Spring Boot 调度程序中的 Java 邮件发送器