由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个 c 里字符串 itoa 相关的问题
相关主题
这个程序怎么解决求改进小函数
grep或egrep怎样输出匹配到的不连续的字符串?which str_cmp code is better?
请帮忙看看这个字符函数的错误在哪里3 c++ challenge-and-grill questions
reverse words, not the Microsoft one!!!请帮忙看一个python string comparion的问题,有包子.
请教一个C里面string copy的问题问个缺少逗号的数组赋值问题
[合集] 一个依赖于平台的memory问题js: 如何确认st1是str2+" \ 0 \ 0 \ 0 " ?
c/c++/java的对象/结构输入这段代码为何要这样做?
请教如何使用qsort() to sort string.能帮忙看看这个字符串的操作问题吗?
相关话题的讨论汇总
话题: str1话题: newlen话题: str2话题: cntofdups话题: ii
进入Programming版参与讨论
1 (共1页)
r*********i
发帖数: 67
1
Run-Time Check Failure #2 - Stack around the variable 'tmpStr' was
corrupted.
我的代码如下:
#include
#include
#include
void compress(char *str1, char *str2) {
int flag = 0;
int len1 = strlen(str1);
int ii, jj;
int charCount[128] = {0};
int cnt = 0, cntOfDups = 0;
int newLen;
char tmpStr[1] = "";
// figure out new length

for (ii=0; ii if (str1[ii] != str1[ii+1]) {
cnt += 2;
cntOfDups = 1;
}
else {
cntOfDups++;
}
}
newLen = cnt+2;
str2[newLen] = '
r*********i
发帖数: 67
2
接着贴
newLen = cnt+2;
str2[newLen] = '\0';
if (newLen > len1) {
strcpy(str2, str1);
return;
}

cntOfDups = 1;
for (ii = len1-1; ii > 0; --ii) {
if (str1[ii] != str1[ii-1]) {
itoa(cntOfDups, tmpStr, 10);
str2[newLen-1] = tmpStr[0];
str2[newLen-2] = str1[ii];
newLen -= 2;
cntOfDups = 1;
}
else {
cntOfDups++;
}
}
itoa(cntOfDups, tmpStr, 10);
str2[newLen-1] = tmpStr[0];
str2[newLen-2] = str1[ii];
}
int main(){
char str1[100], str2[100];
strcpy(str1, "abcccccccccdd");
printf("str1 %s before \n", str1);
compress(str1, str2);
printf("str2 %s after \n", str2);
return 0;
}
p***o
发帖数: 1252
3
看起来像leetcode 443,网上到处都是讨论。

【在 r*********i 的大作中提到】
: 接着贴
: newLen = cnt+2;
: str2[newLen] = '\0';
: if (newLen > len1) {
: strcpy(str2, str1);
: return;
: }
:
: cntOfDups = 1;
: for (ii = len1-1; ii > 0; --ii) {

n******t
发帖数: 4406
4
tmpstr長度只夠放'\0'.所以你啥也幹不了。

【在 r*********i 的大作中提到】
: Run-Time Check Failure #2 - Stack around the variable 'tmpStr' was
: corrupted.
: 我的代码如下:
: #include
: #include
: #include
: void compress(char *str1, char *str2) {
: int flag = 0;
: int len1 = strlen(str1);
: int ii, jj;

r*********i
发帖数: 67
5
谢谢netghost 回复。居然把字符串尺寸定义时候应该包括null给忘了。
1 (共1页)
进入Programming版参与讨论
相关主题
问个c语言的问题请教一个C里面string copy的问题
C 语言,初学者,简单问题(2)[合集] 一个依赖于平台的memory问题
some interview questions i met and rememberedc/c++/java的对象/结构输入
A question about c++ pointer请教如何使用qsort() to sort string.
这个程序怎么解决求改进小函数
grep或egrep怎样输出匹配到的不连续的字符串?which str_cmp code is better?
请帮忙看看这个字符函数的错误在哪里3 c++ challenge-and-grill questions
reverse words, not the Microsoft one!!!请帮忙看一个python string comparion的问题,有包子.
相关话题的讨论汇总
话题: str1话题: newlen话题: str2话题: cntofdups话题: ii