我正在尝试生成2个字符串,其中第二个字符串应该是第一个字符串的循环。
示例:
input 1(key) = passw
input 2(str) = mymessagemymessage
output 1(keyloop) = passwpasspasswpass
output 2(str) = mymessagemymessage
这里的问题不是生成keyloop
,而是实际上保持输入2不变。我目前的输出如下:
output 1(keyloop) = passwpasspasswpass
output 2(str) = passwpasspasswpass **<-- not the desired output**
这是代码:
int main (int argc, string argv[])
{
string key = argv[1];
int k = 0;
string str = GetString();
string keyloop = str;
for (int i=0; i<strlen(keyloop); i++)
{
if ( k == strlen(key))
{
k = 0;
keyloop[i]=key[k];
k++;
}
else if (k != strlen(key))
{
keyloop[i]=key[k];
k++;
}
else
{
printf("error");
}
}
printf("%s\n", keyloop);
printf("%s\n", str);
}
我的代码是什么以及如何更改?
答案 0 :(得分:6)
所以我设法从TabBar
中的<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="sp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Generation</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$("#selectEmp").on('change',function(){
if(this.val =='2')
{
$("#dept").css('display','block');
$("#dept").show();
}
else
{
$("#dept").hide();
}
});
});
</script>
</head>
<body>
<div class="dropdown generate-file">Type :<sp:select id="selectEmp" path="type" name="selectEmp">
<option value="1">All</option>
<option value="2">Department</option>
<option value="3">Individual</option>
</sp:select></div><br/><br/>
<div class="dropdown generate-file" id="dept" style="display:none;">
Department:<sp:select path=""><span class="caret"></span>
<option value="">R and D</option>
<option value="">Development</option>
<option value="">Sales</option>
<option value="">Admin</option>
<option value="">HR</option>
<option value="">Marketing</option>
<option value="">CRM</option>
<option value="">Finance</option>
</sp:select>
</div>
</body>
</html>
main
string
typedef
(或char*
推断了您的参数之后导致编译器错误)。如果没有,那么由于格式错误的const char*
原型,程序的行为 undefined 。如果你告诉我们的话,那将是精彩; - )
继续,main
因此只需string keyloop = str;
的浅拷贝,因此一个“字符串”中的更改将影响另一个“字符串”,因为它们指向相同的缓冲区!
修复?请改用str
,strcpy
或strncpy
。如果您使用strdup
,请记住 作业,以便在完成复制后致电strdup
。