小编nik*_*iko的帖子

如何删除字符?

如何删除字符串中的特殊字符和字母?

 qwert1234*90)!  ' this might be my cell value
Run Code Online (Sandbox Code Playgroud)

我必须把它转换成

 123490  ' I mean I have to remove everything but keep only the numbers in string
Run Code Online (Sandbox Code Playgroud)

但它应该允许空间!

 qwe123 4567*. 90  ' String with spaces
 123 4567 90     ' output should be
Run Code Online (Sandbox Code Playgroud)

我找到了 Replace - 但是为每个角色编写一个替换版本会让我的代码变得更大.好吧,让我清楚地告诉你,不要向你隐瞒任何事情:

  1. input:qwe123 4567*. 90 '带空格的字符串(1,"A").值
  2. 我的想法接下来要做的是: 123 4567 90'首先删除字符,保留空格
  3. 最终输出 A1:A3

    123
    4567
    90

(对于每个空间,它应该插入行并填充)

你能告诉我怎么删除字符串中除数字和空格以外的所有字符?

提前致谢

excel vba excel-vba excel-formula

10
推荐指数
2
解决办法
2万
查看次数

Malloc函数(动态内存分配)在全局使用时导致错误

#include<stdio.h>
#include<string.h>
char *y;
y=(char *)malloc(40); // gives an error here
int main()
{
    strcpy(y,"hello world");
}
Run Code Online (Sandbox Code Playgroud)
error: conflicting types for 'y'
error: previous declaration of 'y' was here
warning: initialization makes integer from pointer without a cast
error: initializer element is not constant
warning: data definition has no type or storage class
warning: passing arg 1 of `strcpy' makes pointer from integer without cast
Run Code Online (Sandbox Code Playgroud)

现在真正的问题是,我们不能在全球范围内进行动态内存分配吗?为什么在全局使用malloc时会显示错误?如果我把malloc语句放在main函数或其他函数中,代码就没有错误.为什么会这样?

#include<stdio.h>
#include<string.h>
char *y;
int main()
{
    y=(char *)malloc(40); 
    strcpy(y,"hello world");
}
Run Code Online (Sandbox Code Playgroud)

c malloc global-variables dynamic-memory-allocation

9
推荐指数
1
解决办法
2万
查看次数

什么使指针比数组更快?

我在Google上搜索并找到了以下指针语法

  void main()
 {
  char a[10]="helloworld";
  char *p=a;
  printf("%c",p[0]);
 }
Run Code Online (Sandbox Code Playgroud)

我不知道Pointers也可以以数组形式访问.我曾经使用*作为指针操作我使用[0]表示数组,而*p表示指针操作,这就是为什么我不知道其他两件事.从上面可以看出,我们可以通过以下任何一种方式访问​​数组的第二个元素

  printf("%C",a[1]);   \\ this is the array
  printf("%c",*(a+1));  \\ this is the array using *
  printf("%c", p[1]);     \\ using the pointer 
  printf("%C",*(p+1));    \\ using the pointer
Run Code Online (Sandbox Code Playgroud)

现在我想知道:哪个操作更快?我读到使用指针的操作更快,这就是为什么C保持在顶部以便快速执行并且没有其他语言能够超越其坚固性的原因.

现在真正的问题是:什么使指针操作更快?

1)*(p + 0)*(地址的值)制作技巧或

2)p [0]

因为我们使用

 *(a+1) or *(p+1) both are same 
  a[1] or p[1] both are same 
Run Code Online (Sandbox Code Playgroud)

当一个普通数组可以用作*(a + 1)(在地址上使用*值)时,就像指针一样.为什么我们使用指针来加快操作?当两者具有相同的语法时,正常数组和指针在这些语法中使用*时为什么指针更快?

但伙计们请告诉我为什么我们使用指针?我的教授告诉我指针更快,因为他们指向地址而不是应该在该位置搜索变量.

c

9
推荐指数
1
解决办法
7543
查看次数

scanf("%[^ \n] s",a)vs得到(a)

我被告知当用户输入字符串时不应使用scanf.相反,大多数专家和StackOverflow上的用户都可以使用gets().我从未在StackOverflow上问过为什么不应该使用scanf over gets for strings.这不是实际问题,但非常感谢对这个问题的回答.

现在来到实际的问题.我遇到过这种类型的代码 -

scanf("%[^\n]s",a); 
Run Code Online (Sandbox Code Playgroud)

这将读取一个字符串,直到用户输入一个新的行字符,同时将空格也视为字符串.

如果我使用有任何问题

scanf("%[^\n]s",a);
Run Code Online (Sandbox Code Playgroud)

而不是得到?

得到比scanf函数更优化,听起来,gets纯粹专门处理字符串.请让我知道这件事.

更新

这个链接帮助我更好地理解它.

c gets scanf

9
推荐指数
2
解决办法
5万
查看次数

为什么C打印我的十六进制值不正确?

所以我对C来说是一个新手,我很想知道为什么我会得到这种不寻常的行为.

我一次读取16位文件,然后按如下方式打印出来.

#include <stdio.h>

#define endian(hex) (((hex & 0x00ff) << 8) + ((hex & 0xff00) >> 8))

int main(int argc, char *argv[])
 {
  const int SIZE = 2;
  const int NMEMB = 1;
  FILE *ifp; //input file pointe
  FILE *ofp; // output file pointer

  int i;
  short hex;
  for (i = 2; i < argc; i++)
   {
    // Reads the header and stores the bits
    ifp = fopen(argv[i], "r");
    if (!ifp) return 1;
    while (fread(&hex, SIZE, NMEMB, ifp))
     {
      printf("\n%x", …
Run Code Online (Sandbox Code Playgroud)

c

9
推荐指数
2
解决办法
2万
查看次数

VBA项目资源管理器仍然显示由宏关闭的excel工作簿

我创建了一个宏来打开一个excel工作簿并执行一些操作,然后最后它关闭文件.宏运行正常.

现在,当我在vba编辑器中打开我的VBA Project explorer时.它显示宏已打开的文件列表,即使它们已关闭.如何从项目资源管理器窗口中删除它们?为什么它仍然显示已经关闭的excel工作簿?无论如何要解决它或它的限制?

excel vba

8
推荐指数
1
解决办法
2万
查看次数

使用'ApplicationData'或'LocalApplicationData'存储所有用户共有的文件?

简介:几个不同的用户将在特定计算机上使用我的应用程序.我希望应用程序将其数据存储在此计算机上的单个公共文件中,而不管哪个用户正在运行该应用程序.

为了实现我想要的,我想知道这个问题是否可能是相关的:'SpecialFolder.LocalApplicationData'和'SpecialFolder.ApplicationData'之间的区别?

从这个问题及其答案看来:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 
Run Code Online (Sandbox Code Playgroud)

具体的机器.我通过谷歌搜索发现的一些信息证实了这一点.但是,我还发现了一些信息,说明这LocalApplicationData用户特定的.

那么,这是真的吗?谁能告诉我"用户特定"和"机器特定"的真正含义?

这就是我的想法:如果LocalApplicationData是特定于机器的,那么我可以使用它作为我的应用程序将所有数据保存到所有用户的单个公共文件的基础.

我也想知道这个ApplicationData文件夹:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)

我应该用它ApplicationData来得到我想要的东西吗?

.net c# .net-3.5

8
推荐指数
1
解决办法
3853
查看次数

如何激活特定工作簿和特定工作表?

如何从当前工作簿中激活我的其他工作簿?我有一个当前的工作簿与dumb.xls和其他工作簿名称为Tire.xls.I已从dumb.xls打开Tire.xls使用.Its worksbooks.open filename:= "name of the file"开放但问题是我无法使其工作.

如果我说cells(2,24).value=24将这些值放在dumb.xls的单元格中,但我希望它能完成一个Tire.xls.

activesheet.cells(2,24).value=24将这些放在Tire.xls上.但是如何使用名称激活工作簿?我需要打开3到4个excel工作簿并执行操作吗?如何激活特定工作簿

我在谷歌上发现了这个代码

     activeworkbook.worksheet("sheetname").activate  ' but not working
     windows("sheetname").activate ' people on google suggested not to use
Run Code Online (Sandbox Code Playgroud)

它没有被激活.我不知道如何使它工作.任何人都可以告诉我如何激活特定工作簿和其他工作簿的特定工作表?

示例:我从dumb.xls工作簿中打开了niko.xls和niko_2.xls作为工作簿,因此共有3本工作簿,我必须激活第二张niko_2.xls工作簿.如何制作它?谁能用这些例子解释我的语法?先感谢您

excel vba excel-vba

7
推荐指数
2
解决办法
32万
查看次数

我想知道什么是真正的回报?

假设

第一个案例

 int a;
 int *p= &a ; it works no error
Run Code Online (Sandbox Code Playgroud)

第二种情况

 long int a;
 long int b;
 b = & a; it wont work 
Run Code Online (Sandbox Code Playgroud)

我们大多数人都说b是变量而不是指针.但请参阅下文.

所以问题是如果&a返回地址是无符号整数那么为什么我们不能将它分配给正常变量?但为什么只能指针?见下文

b = (unsigned int) &a ; it works after typecasting though its not practicable.
Run Code Online (Sandbox Code Playgroud)

如果地址是整数格式,那么为什么无符号或长整数不能保存呢?我在想,背后肯定有一些隐藏的秘密.有人可以透露吗?我的想法是,指针必须在里面做一些事情,但我想知道它会是什么以及为什么普通变量不能.

感谢您的所有答案,但实际问题究竟是什么&a回报?整数值与否?如果是整数,为什么变量不能保持呢?long int a = 65535\valid如果不是int a =&b,如果地址b的值是65535

我并不担心将它用作指针,请问的问题是保存价值.不要引用地址.人们说32或64位,我并不担心.如果地址是整数,为什么它不能保存地址?

我的意思是为什么我们不能分配值,我不是说指向变量的指针的属性,而只是分配它的值

a=65535
b = a \\ works it assigns b - 65535
&a=65535
b = & a   \\ doesn't work, if address is a some …
Run Code Online (Sandbox Code Playgroud)

c c++ pointers programming-languages reference

7
推荐指数
3
解决办法
528
查看次数

CSS位置已修复.Div包装器必须垂直固定,但必须水平变化

我有一个div,就像这样

  #footer
   {   position:fixed;
       left:40px;
       top:0px; 
   }
Run Code Online (Sandbox Code Playgroud)

当我垂直或水平滚动时,位置是固定的.但是我想在用户垂直滚动滚动条时修复div,但是当用户水平滚动滚动条时应该会改变.

我见过一些论坛和帖子,但大多数时候我发现了jquery脚本.我想知道是否有办法在CSS中做到这一点?

仅在一个方向上固定位置 我读过这篇文章,但我不理解jquery脚本.请告诉我在css中执行此操作的方法或使用jquery执行此操作的更好方法.谢谢

html javascript css jquery

6
推荐指数
1
解决办法
1万
查看次数